Alle virtuellen Tabellen sind in Semiramis im Unterkatalog „VIRTUAL“ eingeordnet. Diese Dokumentation beschreibt im Folgenden die virtuelle Tabelle „Kunden“.
1 Zielgruppe
Entwickler
2 Begriffsbestimmung
Im Folgenden werden die Begriffe virtuelle Tabellen, virtuelle Funktion und virtuelle Beziehungsspalte kurz erläutert. Weitere Informationen finden Sie in der Dokumentation Benutzung von Semiramis-ODBC.
Eine virtuelle Tabelle existiert nicht in der Datenbank, sondern wird vom SAS emuliert. Prinzipiell kann auf eine 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. Sie existiert nicht auf der Datenbank, sondern wird vom SAS emuliert.
Eine virtuelle Funktion wird normalerweise über einen Join vom Typ LEFT OUTER an eine andere Datenbanktabelle verbunden. Über die Join-Bedingung oder über die WHERE-Klausel wird die Zuordnung der Werte für die Eingabeparameter der virtuellen Funktion angegeben. Wenn eine Abfrage einen Join enthält, dann wird das Abfrageergebnis zuerst ohne Berücksichtigung der virtuellen Funktion in der Datenbank ermittelt. Anschließend werden für jede Ergebniszeile die Werte der Spalten der virtuellen Funktion berechnet. Dabei berechnet der SAS für die durch die Join-Bedingung festgelegte Wertebelegung der Eingangsparameter, die Werte der Ausgabe-Spalten der virtuellen Funktion.
Eine virtuelle Beziehungsspalte erweitert die Tabelle eines Business Object um eine Spalte, deren Inhalt sich zur Laufzeit der Abfrage berechnet. Die virtuelle Beziehungsspalte basiert auf einer Beziehung des Quell-Business-Objects zu einem konkreten Ziel-Business-Object, die bestimmten Bedingungen genügen muss. Zu beachten ist, dass sie die Tabellen aller Quell-Business-Objects, die so eine Beziehung zu dem Ziel-Business-Object besitzen, um die zusätzliche Spalte erweitert.
3 Virtuelle Tabelle „Kunden“
Durch die virtuelle Tabelle „Kunden“ kann auf Daten eines Kunden zugegriffen werden. Dabei wird die Organisationsabhängigkeit berücksichtigt. Als Eingabeparameter stehen die Spalten „in_number“, „in_organization“, „in_status“, „in_name“, „in_searchString“, „in_postalCode“, „in_city“, „in_country“, „in_region“, „in_maintainingOrganization“, „in_abcCode“, „in_classification1“ bis „in_classification9“, „in_supplierNumber”, „in_showOutputSettings“, „in_showTexts“, „in_allLanguages“, „in_language“, „in_showContacts“ und „in_orderBy“ zur Verfügung.
Die implementierende Java-Klasse ist
com.cisag.app.general.partner.log.CustomerVirtualTable
3.1 Tabellenname
In einem Bericht kann die Tabelle über den Namen app_sales_CustomerVirtualTable angesprochen werden.
3.2 Tabellenspalten
Der Datentyp einer Spalte ist String, wenn nichts anderes angegeben ist.
Spaltenname | Beschreibung |
in_number | Inhalt des Auswahlfeldes „Partner“ |
in_organization | Inhalt des Organisationsauswahlfeldes |
in_status | Inhalt des Auswahlfeldes „Status“ |
in_validityDate | Derzeit ohne Verwendung |
in_name | Inhalt des Auswahlfeldes „Name“ |
in_searchString | Inhalt des Auswahlfeldes „Suchbegriff“ |
in_postalCode | Inhalt des Auswahlfeldes „PLZ“ |
in_city | Inhalt des Auswahlfeldes „Ort“ |
in_country | Inhalt des Auswahlfeldes „Land“ |
in_region | Inhalt des Auswahlfeldes „Region“ |
in_maintainingOrganization | Inhalt des Auswahlfeldes „Zuständige Organisation“ |
in_abcCode | Inhalt des Auswahlfeldes „ABC-Klassifizierung“ |
in_classification1 – 9 | Inhalt der Auswahlfelder „Klassifikation 1 – 9“ |
in_supplierNumber | Inhalt des Auswahlfeldes „Externe Nummer“ |
in_showOutputSettings | Inhalt der Checkbox „Ausgabe Belegdokument-Vorlagen“, Datentyp Boolean. |
in_showTexts | Inhalt der Checkbox „Ausgabe Texte“, Datentyp Boolean. |
in_allLanguages | Inhalt der Checkbox „Texte in allen Sprachen“, Datentyp Boolean. |
in_language | ISO-Code der Sprache in der der Bericht ausgegeben wird. |
in_showContacts | Inhalt der Checkbox „Ausgabe Ansprechpartner“, Datentyp Boolean. |
in_orderBy | Mit dieser Spalte kann die Sortierung der Ausgabe beeinflusst werden. Im Bericht wird unter der Rubrik Datensatzauswahl die Sortierung bestimmt. Standardmäßig steht in dem Feld:{app_sales_CustomerVirtualTable.in_orderBy} = “number asc”; Damit werden die Kunden nach der Partnernummer aufsteigend ausgegeben. |
Ausgabeparameter | |
type | Für jeden Kunden können mehrere Datensätze ausgegeben werden. Der type bestimmt die Satzart:
type = 0: Kundendaten type = 1: Belegdokument-Vorlagen type = 2: Texte type = 3: Ansprechpartner
Datentyp Integer. |
guid_ | Die GUID des Lieferanten. Datentyp Guid. |
organizationalUnit_ | Die GUID der Organisation. Datentyp Guid. |
maintainingSales_ | Die GUID der Daten bearbeitenden Organisation. Datentyp Guid. |
validFrom | Das „Gültig ab“-Datum. Datentyp Timestamp. |
deliveryDocRecipient | Der Lieferbelegempfänger. |
deliveryRecipient | Der bzw. die Lieferempfänger. |
frightCarrier | Der bzw. die Spediteur(e). |
invoicingDocRecipient | Der Rechnungsbelegempfänger. |
invoiceRecipient | Der bzw. die Rechnungsempfänger. |
paymentPartner | Der bzw. die Zahlungspartner. |
salesRepresentative | Der bzw. die Vertreter. |
textSequence | Die Positionsnummer des Textes. Datentyp Integer. |
textType | Der Typ des Textes. |
textDocuments | Der bzw. die Belegtypen des Textes. |
textCode | Die Nummer des Textbausteins. |
textText | Der Inhalt des Textes. |
textLanguage | Die GUID der Sprache des Textes. Datentyp Guid. |
salesOutputSettings_ | Die GUID der Belegdokument-Vorlage. Datentyp Guid. |
partnerRelationGuid_ | Die GUID der Partnerbeziehung des Ansprechpartners. Datentyp Guid. |
isStatisticAvailable | Ist wahr, wenn „Statistik“ lizenziert ist. Datentyp Boolean. |
isRoutesAvailable | Ist wahr, wenn „Versand“ lizenziert ist. Datentyp Boolean. |
3.3 Datenbanktyp
Die virtuelle Tabelle „Kunden“ steht auf Datenbanken des Typs OLTP-Datenbank zur Verfügung.
3.4 Berechtigungen
Für die Nutzung des ODBC-Treibers wird folgendes Business Entity für die Berechtigungsermittlung herangezogen:
Kunden
com.cisag.app.sales.obj.Customer