cancel
Showing results for 
Search instead for 
Did you mean: 

Consume External OData in SAP Gateway

0 Kudos

I have metadata service that looks like this...

<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">

<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0">

<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="HaworthEnterpriseInterfaceService.Models">

<EntityType Name="PROE_SPEED">

<Property Name="PROE_SPEED_ID" Type="Edm.Int64" Nullable="false"/>

<Property Name="PART_NUMBER" Type="Edm.String"/>

<Property Name="PARAMETER_NAME" Type="Edm.String"/>

<Property Name="PARAMETER_VALUE" Type="Edm.String"/>

<Property Name="REVISION" Type="Edm.String"/>

<Property Name="VERSION" Type="Edm.String"/>

<Property Name="RELEASE_LEVEL" Type="Edm.String"/>

<Property Name="CREATED_BY" Type="Edm.String"/>

<Property Name="CREATION_DATE" Type="Edm.DateTime"/>

<Property Name="LAST_UPDATED_BY" Type="Edm.String"/>

<Property Name="LAST_UPDATE_DATE" Type="Edm.DateTime"/>

<Property Name="AMAPS_PART_NUMBER" Type="Edm.String"/>

</EntityType>

</Schema>

<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="Default">

<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">

<EntitySet Name="SPEED_SPDD_PROE_SPEED" EntityType="HaworthEnterpriseInterfaceService.Models.PROE_SPEED"/>

<EntitySet Name="SPEED_SPDP_PROE_SPEED" EntityType="HaworthEnterpriseInterfaceService.Models.PROE_SPEED"/>

</EntityContainer>

</Schema>

</edmx:DataServices>

</edmx:Edmx>


This does not make it pass the parsing. I debugged and found in class /IWFND/CL_OCI_PARSER they are replacing certain schemas in the compose_unrecognized method.

  DATA: ls_unrec TYPE ty_s_unrec   .

*  ls_unrec-actual   = 'MaxLength="Max"'.
*  ls_unrec-expected = 'MaxLength=""'.
*  APPEND ls_unrec TO mt_unrecognized .
*
*  ls_unrec-actual   = 'MaxLength="MAX"'.
*  ls_unrec-expected = 'MaxLength=""'.
*  APPEND ls_unrec TO mt_unrecognized .

   ls_unrec
-actual   = 'xmlns="http://schemas.microsoft.com/ado/2007/05/edm">'.
   ls_unrec
-expected = 'xmlns="http://schemas.microsoft.com/ado/2008/09/edm">'.
  
APPEND ls_unrec TO mt_unrecognized .

* Example: http://www.nerddinner.com/SERVICES/ODATA.SVC/$metadata
   ls_unrec
-actual   = 'xmlns="http://schemas.microsoft.com/ado/2006/04/edm">'.
   ls_unrec
-expected = 'xmlns="http://schemas.microsoft.com/ado/2008/09/edm">'.
  
APPEND ls_unrec TO mt_unrecognized .

* Example: Azure market place services
   ls_unrec
-actual   = 'http://schemas.microsoft.com/ado/2009/08/edm'.
   ls_unrec
-expected = 'http://schemas.microsoft.com/ado/2008/09/edm'.
  
APPEND ls_unrec TO mt_unrecognized
.


Does anyone know if this could be updated, perhaps even made into a customizing table?


Thanks,

Alex

Accepted Solutions (0)

Answers (1)

Answers (1)

laurent_dubois
Explorer
0 Kudos

Hi Alex,

I have the same issue. I'm trying to consume an odata service built in from a .net platform. It seems to be related to the CSDL version (version 3.0 versus Version 2.0). Did you solve your issue? The transformation /IWCOR/ST_DS_EDM_METADATA, only allows  xmlns="http://schemas.microsoft.com/ado/2008/09/edm"... I'm not sure if we have to update this in SAP or if the .net app needs to change the version...

Cheers

LAurent.