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
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.
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.