Developer

Migrating iOS Native OData Applications

Migrate your iOS OData application from version 2.3 SP04 to SAP Mobile Platform version 3.0.x.

Overview

Migrate OData applications by refactoring the classes while performing:
  • Registration
  • Request-Response (data fetch)
  • Parsing

Registration

For registration, there are no code changes, and no refactoring is required to migrate an application from 2.3 SP04 to 3.x. Only a rebuild is necessary for 2.3 SP04 applications to continue working with the SAP Mobile Platform 3.0 OData SDK. New applications are required to use the new APIs. You must also use the new classes to OData offline and to implement other features such as batch processing.

Request-Response

In version 3.x, a new Request API has been introduced for uniformity in API nomenclature; the SDM APIs from earlier versions have been deprecated. With this change, "SDM*" has been removed from all classes and methods names. Method names mostly remain the same, unless specified otherwise. In this table, class names are listed first, followed by the header files to which the classes belong.
Table 43: Refactored Request Classes
Version 3.0 (New) Version 2.3 (Deprecated)
Request (Request.h) SDMHttpRequest (SDMHttpRequest.h)
RequestBuilder (RequestBuilder.h) SDMRequestBuilder (SDMRequestBuilder.h)
DownloadCache (DownloadCache.h) SDMDownloadCache (SDMDownloadCache.h)
FormDataRequest (FormDataRequest.h) SDMFormDataRequest (SDMFormDataRequest.h)
NetworkQueue (NetworkQueue.h) SDMNetworkQueue (SDMNetworkQueue.h)
<Requesting> (Requesting.h) <SDMRequesting>; corresponds to protocol refractoring (SDMRequesting.h)
<CacheDelegate> (CacheDelegate.h) <SDMCacheDelegate> (SDMCacheDelegate.h)
<RequestDelegate> (RequestDelegate.h) <SDMHttpRequestDelegate> (SDMHttpRequestDelegate.h)
<ProgressDelegate> (ProgressDelegate.h) <SDMProgressDelegate> (SDMProgressDelegate.h)
ConnectivityException (ConnectivityException.h) SDMConnectivityException (SDMConnectivityException.h)

Parser

All "SDM*" classes have been refactored with "OData*" classes. All method names remain the same.

In this table, all public header files are listed first with their corresponding refactored names. If the class names in the file are different and the file contains multiple class names, different legends have been provided accordingly.

Table 44: Refactored Parser Classes
Version 3.0 (New)) Version 2.3 (Deprecated)
ODataFunctionImportResultParser.h SDMFunctionImportResultParser.h **
ODataGenericParser.h SDMGenericParser.h **
OData.h SDMOData.h *
ODataCollection.h SDMODataCollection.h **
ODataDataParser.h SDMODataDataParser.h **
ODataEntitySchema.h SDMODataEntitySchema.h **
ODataEntry.h SDMODataEntry.h **
ODataError.h SDMODataError.h **
ODataErrorXMLParser.h SDMODataErrorXMLParser.h **
ODataFunctionImport.h SDMODataFunctionImport.h #
ODataFunctionImportParameter SDMODataFunctionImportParameter
ODataFunctionImport SDMODataFunctionImport
ODataIconInfo.h SDMODataIconInfo.h **
ODataLink.h SDMODataLink.h #
ODataLink SDMODataLink
ODataRelatedLink SDMODataRelatedLink
ODataMediaResourceLink SDMODataMediaResourceLink
ODataActionLink SDMODataActionLink
ODataMetaDocumentParser.h SDMODataMetaDocumentParser.h **
ODataProperty.h SDMODataProperty.h *
ODataPropertyInfo.h SDMODataPropertyInfo.h **
ODataPropertyValueFactory.h SDMODataPropertyValueFactory.h **
ODataPropertyValues.h SDMODataPropertyValues.h #
ODataPropertyValueObject SDMODataPropertyValueObject
ODataPropertyValueInt SDMODataPropertyValueInt
ODataPropertyValueString SDMODataPropertyValueString
ODataPropertyValueComplex SDMODataPropertyValueComplex
ODataPropertyValueDateTime SDMODataPropertyValueDateTime
ODataPropertyValueBoolean SDMODataPropertyValueBoolean
ODataPropertyValueGuid SDMODataPropertyValueGuid
ODataPropertyValueBinary SDMODataPropertyValueBinary
ODataPropertyValueSingle SDMODataPropertyValueSingle
ODataPropertyValueDouble SDMODataPropertyValueDouble
ODataPropertyValueDecimal SDMODataPropertyValueDecimal
ODataDuration SDMDuration
ODataPropertyValueTime SDMODataPropertyValueTime
ODataPropertyValueTimeOffset SDMODataPropertyValueTimeOffset
ODataSchema.h SDMODataSchema.h **
ODataServiceDocument.h SDMODataServiceDocument.h **
ODataServiceDocumentParser.h SDMODataServiceDocumentParser.h **
ODataWorkspace.h SDMODataWorkspace.h **
ODataXMLBuilder.h SDMODataXMLBuilder.h #
ODataEntryBody SDMODataEntryXML
OpenSearchDescription.h SDMOpenSearchDescription.h #
OpenSearchDescriptionURLTemplate SDMOpenSearchDescriptionURLTemplate
OpenSearchDescription SDMOpenSearchDescription
OpenSearchDescriptionXMLParser.h SDMOpenSearchDescriptionXMLParser.h **
<ODataParserDelegate.h> <SDMParserDelegate.h> ##
ODataParserException.h SDMParserException.h **
PerformanceUtil.h SDMPerformanceUtil.h **
ODataSubscriptionXMLBuilder.h SDMSubscriptionXMLBuilder.h #
ODataSubscriptionInfo SDMSubscriptionInfo
ODataSubscriptionXML SDMSubscriptionXML
  • * Indicates a header file rather than a class definition. Rename the header file in the #import statement.
  • ** Indicates that the class name is same as the name of the header file. For example, the SDMODataError.h file has a class definition that is named SDMODataError.
  • # Indicates that these header files have multiple class definitions in the header file and are listed below the same, italicized.
  • ## Corresponds to protocol definition in iOS.