Einführung: Zugriff auf dynamische Business Objects

1                     Themenübersicht

Diese Dokumentation zeigt einen Überblick über die virtuellen Tabellen, mit denen auf Daten in Semiramis über ODBC (Open Database Connectivity) zugegriffen werden kann und welche über die Standardtabellen in ODBC nicht erreichbar sind.

Es wird empfohlen, als Grundlage für dieses Thema die Dokumentation ODBC-Schnittstelle zu lesen.

2                     Begriffsbestimmung

Virtuelle Tabelle

Eine virtuelle Tabelle existiert nicht in der Datenbank, sondern wird vom SAS emuliert. Prinzipiell kann auf virtuelle Tabelle wie auf eine Datenbanktabelle zugegriffen werden. Der Inhalt einer virtuellen Tabelle wird zur Laufzeit der Abfrage bezüglich der Eingabewerte berechnet. Als Anfrageergebnis können beliebig viele Zeilen zurückgeben werden. Eine virtuelle Tabelle darf nur als einzige Tabelle in einem einfachen SQL-Statement verwendet werden.

Virtuelle Tabellen sollten verwendet werden, wenn das Anfrageergebnis mehr als eine Zeile umfassen kann. Wenn das Anfrageergebnis nur maximal eine Zeile enthält, bietet sich eine virtuelle Funktion an, da diese in Joins verwendet werden kann.

Virtuelle Funktion

Eine virtuelle Funktion ist eine spezielle Tabelle, die zu einer Menge von Eingabewerten eine Ergebniszeile zurückgibt, welche zur Laufzeit der Abfrage berechnet wird. Diese existiert nicht auf der Datenbank, sondern wird vom SAS emuliert. Eine virtuelle Funktion wird normalerweise an eine andere Tabelle verbunden, um diese um die berechneten Felder zu erweitern.

3                     Zugriff auf dynamische Business Objects

Mithilfe von virtuellen Tabellen können Sie auf die Inhalt von dynamischen Business Objects zugreifen. Dynamische Business Objects können entweder als BLOB oder in Datenbank-Tabellen gespeichert werden. Parameter in der Produktion werden in einem BLOB auf der Datenbank gespeichert und über die Tabelle des Business Objects kann nicht darauf zugegriffen werden. Dagegen sind die weiteren Felder eines Business Entitys in einer eigenen Tabelle gespeichert und sind damit direkt erreichbar. Für die Artikelmerkmale existiert eine spezielle virtuelle Tabelle. Alle virtuellen Tabellen, die Inhalte von dynamischen Business Objects anzeigen, besitzen die gleichen Ausgabespalten, um die Inhalte auszugeben.

Zu jedem dynamischen Business Object sind Darstellungsinformationen in dem zugehörigen Entity-Extension-Set abgelegt. Zu jedem Attribut des dynamischen Business Objects existiert eine Entity Extensions in dem Entity-Extension-Set. In der Entity Extension ist unter anderem die Bezeichnung und der betriebswirtschaftliche Datentyp enthalten.

Durch virtuelle Tabellen können alle Entity Extensions eines Entity-Extension-Sets abgefragt werden. Jede Ergebniszeile repräsentiert eine Entity Extension. Da Entity Extensions unterschiedliche Datentypen besitzen, hat jede virtuelle Tabelle ein oder mehrere Spalten, die den Wert der Entity Extension enthalten. Der Name einer solchen Spalte beginnt mit dem Präfix „attributeValue“, gefolgt vom Namen des technischen Datentyps und gegebenenfalls weiteren Suffixe.

Die folgende Tabelle stellt die Zuordnung zwischen Datentyp und den Tabellenspalten mit dem Präfix „attributeValue“ dar:

Datentyp Techn.  Datentyp Ausgabespalte(n) Bemerkung
Text

URL

Klassifikation

E-Mail-Adresse

STRING attributeValueString Diese Spalte ist nur mit einem Wert belegt, wenn die Entity Extension vom Datentyp STRING ist.
Datum CIS_DATE_DATE attributeValueCisDateDate

attributeValueCisDateDate_gmt

attributeValueCisDateDate_timeZone

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp CIS_DATE_DATE ist.
Datum und Uhrzeit CIS_DATE_TIMESTAMP attributeValueCisDateTimeStamp

attributeValueCisDateTimeStamp_gmt

attributeValueCisDateTimeStamp_timeZone

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp CIS_DATE_TIMESTAMP ist.
Betrag

Preis

FOREIGN_AMOUNT attributeValueForeignAmount_amount

attributeValueForeignAmount_currency_

attributeValueForeignAmount_currency_BK

attributeValueForeignAmount_currency_text

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp FOREIGN_AMOUNT ist.
Betrag in Hauswährung

Preis in Hauswährung

DOMESTIC_AMOUNT attributeValueDomesticAmount_amount1

attributeValueDomesticAmount_amount2

attributeValueDomesticAmount_amount2_text

attributeValueDomesticAmount_amount3

attributeValueDomesticAmount_amount3_text

attributeValueDomesticAmount_amountCorporate

attributeValueDomesticAmount_amountOrganization

attributeValueDomesticAmount_exact

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp DOMESTIC_AMOUNT ist.
Dezimal DECIMAL attributeValueDecimal Diese Spalte ist nur mit einem Wert belegt, wenn die Entity Extension vom Datentyp DECIMAL ist.
Menge QUANTITY attributeValueQuantity_amount

attributeValueQuantity_uom_

attributeValueQuantity_uom_BK

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp QUANTITY ist.
Auswahlfeld VALUESET attributeValueValueSet (Deprecated)

attributeValueValueSetName

attributeValueValueSetText

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp VALUESET ist.
Business Entity PRIMARY_KEY attributeValueRelation_BK

attributeValueRelation_Object_Text

attributeValueRelation_Text

Diese Spalten sind nur mit Werten belegt, wenn die Entity Extension vom Datentyp PRIMARY_KEY ist.
Timestamp TIMESTAMP attributeValueTimeStamp

attributeValueTimeStamp_gmt

Diese Spalte ist nur mit einem Wert belegt, wenn die Entity Extension vom Datentyp TIMESTAMP ist.
GUID GUID attributeValueGUID_ Diese Spalte ist nur mit einem Wert belegt, wenn die Entity Extension vom Datentyp GUID ist.

Je nach Datentyp der Entity Extension sind die zugehörigen Spalten mit dem Präfix „attributeValue“ mit den Werten der Entity Extension belegt, die anderen „attributeValue“-Spalten sind leer.

Jede Tabelle hat zusätzlich Spalten, welche die Währungsbelegung der aktiven Organisation zurückgeben. Diese können zur korrekten Behandlung von Entity Extensions vom Typ DOMESTIC_AMOUNT benötigt werden.

 

Czy ten artykuł był pomocny?