OData

Kurze Einführung in OData

Brandeis Consulting & Cadao

OData Versionen

  • OData 1.0 - 2007 von Microsoft
  • OData 2.0 - 2011 von Microsoft
  • OData 3.0 - 2012 von OASIS
  • OData 4.0 - 2014 von OASIS

OASIS ist eine internationale nicht-gewinnorientierte Organisation welche sich u.a. um die Weiterentwicklung von OData kümmert.

OASIS Wird z.B. von IBM, AMD, RedHat, Adobe, SAP, SIEMENS ... unterstützt.

Brandeis Consulting & Cadao

OData vs. REST

  • OData ist ein Protokoll dsa auf REST-Prinzipien basiert
  • OData setze auf Datenformate XML und JSON
  • OData vereinfacht durch Standards die Kommunikation
Brandeis Consulting & Cadao

OData V2 vs V4

_ OData V2 OData V4
Datenformat Daten Atom / Xml (in SAP auch JSON) Atom / XML und JSON
Datenformat Metadaten XML only JSON 10 - 60 % weniger Daten
Lazy Loading Metadaten Nicht verfügbar Verfügbar
Abfrageoperationen Standard Erweitert
Analytische Abfragen Standard Erweitert
Datentypen Einfach Erweitert
Versionsveraltung Nicht unterstützt Unterstützt
Plattformen Primär MS und SAP MS, SAP, IBM, Oracle, ...
Brandeis Consulting & Cadao

Atom

  • Atom ist der Name eines XML-Basierten Formats zu rÜbertragung von Webinhalten und Metadaten
<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Example Feed</title> 
  <link href="http://example.org/"/> 
  <updated>2003-12-13T18:30:02Z</updated> 
  <author> 
    <name>John Doe</name> 
  </author> 
  <id>urn:uuid:60a76c80-d399-11d9-b93C</id> 

  <entry><d:Country>US</d:Country>
    <d:OrganizationName1>Bar New York</d:OrganizationName1>
    <d:CreditLimitAmount>200.00</d:CreditLimitAmount></entry> 

</feed> 

Brandeis Consulting & Cadao

JSON

  • JavaScript Object Notation
  • Unabhängig von Programmiersprachen und somit auch von Menschen einfach zu lesen
{
  "d" : {
    "__metadata" : {
      "id" : "https://<url>/Z_UI_BP_MD_U/Partner('1000000017')",
      "uri" : "https://<url>/Z_UI_BP_MD_U/Partner('1000000017')",
    …
    },
    "OrganizationBPName1" : "Bar New York",
    "Country" : "US",
    "CustomerTaxClassifCheckbox" : false,
    "CustomerCreditLimitAmount" : "200.00",
    …
Brandeis Consulting & Cadao

Atom/XML vs. JSON

_ Atom/XML JSON
Lesbarkeit o.k. besser
Geschwindigkeit o.k. besser
Kompakteit o.k. besser
Brandeis Consulting & Cadao

OData V2 CRUD in UI5

  • Create, Read, Update, Delete von Entitäten
oModel.read("/Products(999)", {success: mySuccessHandler, error: myErrorHandler});

oModel.update("/Products(999)", oData, {success: mySuccessHandler, error: myErrorHandler});

oModel.remove("/Products(999)", {success: mySuccessHandler, error: myErrorHandler});

oModel.createEntry( "/Customer", { properties: { LastName : 'Franz' } } );

oModel.setRefreshAfterChange(false);

Brandeis Consulting & Cadao

OData V2 - Aktionen

  • Wird mit der Model Methode callFunction ausgeführt
oModel.callFunction("/GetProductsByRating", { method:"GET", urlParameters: { "rating" : 3 } } )
Brandeis Consulting & Cadao

CSS Size

  • Absolute Längenangaben
    • 10px (1px = 1/96th of 1in)
    • 10pt (1pt = 1/72 of 1in)
    • 10in (1in = 96px = 2,54 cm)
    • 10mm
    • 10cm
  • Relative Längenangaben
    • 1em (Relativ to the font-size of the element)
    • 1ex (Relativ to the x-height of the current font (rarely used) )
    • ...
Brandeis Consulting & Cadao

Events in XML Views

  • Abhängig von der Syntax wird der Handler gesucht
    • .doSomething -> Methode im View Controller
    • global.doSomething -> Methode in einem globalen Handler
    • doSomething -> Relativer NAme (Controller oder glob. Handler)
Brandeis Consulting & Cadao