Abfragen von UDC-Daten
  • 18 Dec 2023
  • 4 Minuten Lesezeit

Abfragen von UDC-Daten


Artikel-Zusammenfassung

Mit Hilfe des gfUdcConnectors können Sie dynamische Daten ganz einfach über die UDC-Schnittstelle abfragen. Im Folgenden wird erklärt, wie Sie den Connector in HTML-Basic- als auch HTML-Wizard Spots integrieren. 

Einbinden der Bibliothek

Der gfUdcConnector wird innerhalb der index.html-Seite über das "Script"-Tag eingebunden, z.B.: <script src="PATH_TO_SCRIPT/gfUdcConnector.js"></script>

Instanzieren des gfUdcConnectors 

Um die Funktionen des gfUdcConnectors aufrufen zu können, muss dieser innerhalb des eigenen Codes zuvor instanziert werden:

var udc = new GFUdcConnector();

udc.getVersion();

Objekttypisierung

UDC-Datenobjekte

Um den Aufbau der Daten besser zu veranschaulichen, wurden die einzelnen Objekte typisiert. Diese werden in den folgenden Kapiteln für die Funktionserklärungen herangezogen.

UdcData
UdcData: {
   Success: boolean,
   Result: DataSource[]
};

Property

Beschreibung

Success

true: valide Daten vorhanden

false: Fehler beim Abfragen der Daten aufgetreten

Result

Array von DataSource-Objekten, welche den mit dem Spot verknüpften Datenquellen entsprechen (siehe Spots mit UDC-Daten verknüpfen). Daher kann die Anzahl auch "0..n" betragen.

UdcDataByKey
UdcDataByKey: {
   Success: boolean,
   Result: DataSource
};

Property

Beschreibung

Success

true: valide Daten vorhanden

false: Fehler beim Abfragen der Daten aufgetreten

Result

Das DataSource-Objekt, welches über die Bezeichnung aufgelöst wurde.
 undefined, wenn keine Datenquelle unter der entsprechenden Bezeichnung gefunden wurde.

DataSource
DataSource: {
   Categories: Category[],
   ContainerGuid: string,
   Elements: Element[],
   Key: string,
   LastModified: string,
   PluginInstanceName: string
};

Property

Beschreibung

Categories

Array von 0..n Category-Objekten

ContainerGuid

Eindeutige Kennzeichnung der Datenquelle (bezogen auf Spot bzw. Spot-Instanz)

Elements

Array von 0..n Element-Objekten

Key

Bezeichnung der Datenquelle. Dieser Wert entspricht jenem, der im CMS bei der Bezeichnung der Datenquelle vergeben wurde (bezogen auf den Spot bzw. die Spot-Instanz).

LastModified

Letzte Aktualisierung

PluginInstanceName

Name der Datenquelle

Category
Category: {
   ExternalId: string,
   Id: number,
   LastModified: string,
   MediaFiles: any[]
   Name: string
};

Property

Beschreibung

ExternalId

Eindeutige Kennzeichnung

Id

Interner Schlüssel für logische Verknüpfungen mit den Element-Objekten

LastModified

Letzte Aktualisierung

MediaFiles

Array an Dateiinformationen. Diese sind abhängig vom jeweiligen Plug-In und werden daher hier nicht näher beschrieben.

Name

Name der Kategorie

Element
Element: {
   CategoryIds: number[],
   ElementValues: any[],
   ExternalId: string,
   Guid: string,
   Id: number,
   LastModified: string,
   MediaFileBaseUrl: string,
   MediaFileDirectory: string,
   MediaFiles: any[],
   Name: string
};

Property

Beschreibung

CategoryIds

Verknüpfung mit 0..n Category-Objekten

ElementValues

Objekt mit den entsprechenden Informationen in Form einer Liste mit Key-Value-Pairs. Diese sind bereits typisiert, jedoch abhängig vom jeweiligen Plug-In und werden daher hier nicht näher beschrieben.

ExternalId

Eindeutige Kennzeichnung

Id

Interner Schlüssel

LastModified

Letzte Aktualisierung

MediaFileBaseUrl

URL zu UDC-Medien am Server/Player

MediaFileDirectory

Verzeichnis am Filesystem am Server/Player

MediaFiles

Array von 0..n MediaFile-Objekten

Name

Name des Elements

MediaFile
MediaFile: {
   Image: string 
};

Property

Beschreibung

Image

Dateiname des Mediums

Debug objects

Die Ermittlung der für die Testverbindung notwendigen Parameter wird in Einrichten einer UDC-Testverbindung ausführlich erklärt.

DebugServer
DebugServer = {
   url: string,
   locationId: number,
   spotId: number,
   sessionId: string
};

Property

Beschreibung

Beispiel

locationId

Interner Schlüssel des Players

65

sessionId

Gültiger Sitzungsschlüssel zur Authentifizierung

d3872316-dc92-48e8-8659-341084b2ee12

spotId

Interner Schlüssel des Spots

697

url

Adresse zu den Server-Webservices

http://{DOMAIN}/GV2/Webservices/rest/gui/api/

DebugClient

Markup

DebugServer = {
   ip: string,
   siid: number
};

Property

Beschreibung

Beispiel

ip

IP-Adresse des zu testenden Players

192.168.169.73

siid

Interner Schlüssel der Spot-Instanz

529

DebugFile

Markup

DebugServer = {
   url: string
};

Property

Beschreibung

Beispiel

url

Relativer Pfad zu lokal verfügbaren UDC-Daten

./mock/udc.json

Verfügbare Funktionen

getData

Mit dieser Funktion lassen sich alle mit dem Spot verknüpften UDC-Daten auf einmal abrufen.

Parameter:

Markup

{callback} onSuccess: returns UdcData, result as plain text {string}
{callback} onError: returns error message {string}

Beispiel:

Markup

var udc = new GFUdcConnector();
udc.getData(function(jsonData, plainData)
{
   // data as JSON {UdcData}
   console.log(jsonData);
   // data as plain text {string}
   console.log(plainData);

}, function(message)
{
   console.error(message);
});
Erklärung:

Der Funktion getData werden zwei Callback-Funktionen übergeben. Die erste Funktion wird im Erfolgsfall mit dem UdcData-Objekt (siehe UdcData) und Daten als String aufgerufen. Die zweite Funktion wird im Fehlerfall mit der Fehlermeldung aufgerufen.

UdcData.Result ist ein Array von DataSource-Objekten, welche jenen Datenquellen entsprechen, die mit dem Spot bzw. der Spot-Instanz verknüpft worden sind. Die Anzahl beträgt 0..n Objekte, je nachdem wie viele Datenquellen dem Spot bzw. der Spot-Instanz zugeordnet wurden.

Die einzelnen Datenquellen müssen dann über die Bezeichnung der Datenquelle (Key) selbst identifiziert und entsprechend weiterverarbeitet werden. 

Hinweis

Sind nur wenige Datenquellen mit dem Spot verknüpft, empfiehlt es sich, die Daten gleich über die Funktion GetDataByKey abzufragen, um sich die nachträgliche Identifikation zu ersparen. Dies erhöht jedoch gleichzeitig die Anzahl der HTTP-Abfragen und somit die Netzlast. 

getDataByKey

Mit dieser Funktion lässt sich eine spezifische Datenquelle gezielt über die eindeutige Bezeichnung abfragen.

Hinweis

Bei vielen verknüpften Datenquellen empfiehlt es sich, die Datenquellen mit getData auf einmal abzufragen und im Anschluss weiterzuverarbeiten. Dies schont die Netzlast.

Parameter:

Markup

{string} key: unique designator

{callback} onSuccess: returns UdcDataByKey, result as plain text {string}
{callback} onError: returns error message {string}

Beispiel:

Markup

var udc = new GFUdcConnector();
udc.getDataByKey("News", function(jsonData, plainData)
{
   // data as JSON {UdcData}
   console.log(jsonData);

   // data as plain text {string}
   console.log(plainData);

}, function(message)
{
   console.error(message);
});
Erklärung:

Der Funktion getDataByKey werden neben der eindeutigen Bezeichnung der Datenquelle zwei Callback-Funktionen übergeben. Die erste Funktion wird im Erfolgsfall mit dem UdcDataByKey-Objekt (siehe UdcDataByKey) und Daten als String aufgerufen. Die zweite Funktion wird im Fehlerfall mit der Fehlermeldung aufgerufen.

UdcDataByKey.Result ist ein DataSource-Objekt, welches einer dem Spot bzw. der Spot-Instanz zugeordneten Datenquelle entspricht. Kann die Datenquelle über die eindeutige Bezeichnung nicht gefunden werden, so ist UdcDataByKey.Result undefined.

setLocalTestData

Mit dieser Funktion lässt sich ein Spot während der Entwicklung gegen unterschiedliche UDC-Webservices bzw. -Ziele testen. Die Parameter der einzelnen Verbindungstypen müssen korrekt gesetzt werden, damit die Schnittstelle fehlerfrei funktioniert.

Hinweis

Diese Funktionalität ist ausschließlich für die Entwicklung gedacht und muss für die produktive Verwendung zumindest auskommentiert, besser jedoch gänzlich entfernt werden. Andernfalls kommt es zu unerwünschtem Fehlverhalten.

Parameter:

{DebugServer|DebugClient|DebugFile} connection

Beispiel:

Markup

var udc = new GFUdcConnector();
var connection = {
   ip: "192.168.169.73",
   siid: 529
};
udc.setLocalTestData(connection);
// fetch some data...
Erklärung:

In Abhängigkeit von der übergebenen Verbindungsart werden die Daten von der jeweiligen Quelle abgegriffen und zur Verfügung gestellt. Dabei wird unterschieden zwischen:

  • Testen gegen die Server-Webservices, Übergabe von DebugServer-Objekt

  • Testen gegen die Player-Webservices, Übergabe von DebugClient-Objekt

  • Testen gegen lokales File, Übergabe von DebugFile-Objekt

Weitere Details dazu finden Sie unter Einrichten einer UDC-Testverbindung.

registerLogHandler

Mit dieser Funktion lassen sich noch zusätzliche Logs seitens des gfUdcConnectors abrufen.

Parameter:

{callback} onLog: returns log messsag {string}

Beispiel:

Markup

var udc = new GFUdcConnector();
udc.registerLogHandler(function(message)
{
   console.log(message);
});
Erklärung:

Der Funktion registerLogHandler wird als Parameter eine Callback-Funktion übergeben, welche im Falle eines Log-Eintrags seitens des gfUdcConnectors aufgerufen wird. Als Parameter wird die Log-Meldung übergeben.


Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.