Parameter für Datenquellen implementieren

Um Datenquellen flexibler zu gestalten, können Sie Laufzeitparameter implementieren, sodass Essbase Variablen in der Abfrage verwenden kann. Durch die Verwendung von Variablen in Datenquellen können Sie Vorgänge optimieren, da weniger Datenquellen gewartet werden müssen.

Dabei kann es sich um in Essbase definierte Substitutionsvariablen handeln, um Laufzeitparameter, die im Rasterkontext definiert werden, wenn Smart View-Benutzer einen Drillthrough zu externen Daten ausführen, oder um benutzerdefinierte Funktionen, die in einem externen Quellsystem geschrieben wurden.

Wenn Sie Variablen in Essbase-Datenquellen verwenden möchten, müssen Sie zunächst folgende Schritte ausführen:

  1. Schließen Sie Variablensyntax in die Datenquellenabfrage ein. Die Syntax der Datenquellenabfrage muss beispielsweise ? enthalten, wobei ? ein Platzhalter für die zur Laufzeit definierte Variable ist.

  2. Führen Sie eine der folgenden Aktionen aus:

    • Legen Sie einen festen Wert für den Standardparameter in der Datenquelle fest, der in Essbase als Fallback verwendet wird, wenn die Variable zur Laufzeit einen ungültigen Kontext aufweist

    • Legen Sie eine Ersetzungsvariable fest, die von der Datenquelle verwendet werden soll

    • Übergeben Sie eine externe, benutzerdefinierte Funktion (oder Stored Procedure) als Parameter.

Um Datenquellen zu definieren und zugehörige Parameter für die Implementierung zu implementieren, müssen Sie ein Application Manager oder eine höhere Rolle besitzen.

Durch das Implementieren von Variablen in Datenquellen können Sie einen Laufzeitabfragekontext angeben, der immer dann angewendet wird, wenn ein Benutzer auf eine Datenquelle zugreift, die mit einem Essbase-Cube verknüpft ist.

Beispiele für mögliche Anwendungsfälle:

  • Ein Database Manager überwacht einen wiederkehrenden Dataload-Job, bei dem monatlich Daten in den Cube laden werden. Der Database Manager kann jetzt eine Substitutionsvariable verwenden, um Daten für den aktuellen Monat zu laden, anstatt eine Laderegel für jeden Monat separat zu verwalten.

  • Ein Application Manager verwaltet Drillthrough-Berichtsdefinitionen für verschiedene geschäftliche Anwendungsfälle. Der Application Manager implementiert Variablen in der zugrunde liegenden Datenquelle, die Smart View-Benutzer bei ihren Drillthrough-Vorgängen abrufen können. Daher muss der Application Manager weniger Drillthrough-Berichtsdefinitionen verwalten und debuggen.

Standardparameter in einer Datenquelle festlegen

Sie können einen Standardparameter in einer Datenquelle festlegen, wenn Sie die Verwendung von Variablen in den Abfragen aktivieren möchten, die in Essbase beim Arbeiten mit Daten generiert werden, die außerhalb des Cubes gespeichert sind.

So legen Sie den Standardparameter fest:

  1. Rufen Sie eine Verbindung zur externen Datenquelle ab, oder erstellen Sie eine solche Verbindung (erstellen Sie beispielsweise eine Verbindung zu Oracle Database).

    Sie können eine globale Verbindung verwenden, falls eine solche bereits auf der Seite "Quellen" der Essbase-Weboberfläche vorhanden ist. Sie können aber auch eine Verbindung auf Anwendungsebene erstellen.

  2. Erstellen Sie eine Datenquelle über die Verbindung, mit der Sie auf Oracle Database zugreifen.

    Sie können eine Datenquelle global definieren, wenn sie für alle Anwendungen verfügbar sein soll. Alternativ können Sie sie auf Anwendungsebene definieren.

    1. Um eine globale Datenquelle zu erstellen, müssen Sie ein Serviceadministrator sein. Klicken Sie auf der Homepage auf Quellen, auf die Registerkarte Datenquellen unter Ihrem Benutzernamen, und klicken Sie auf Datenquelle erstellen.

      Um eine Datenquelle auf Anwendungsebene zu erstellen, müssen Sie ein Anwendungsmanager oder ein Poweruser mit Anwendungsverwaltungsberechtigung für die angegebene Anwendung sein. Klicken Sie auf der Homepage auf einen Antragsnamen. Klicken Sie dann unter Ihrem Benutzernamen auf Quellen, klicken Sie auf die Registerkarte Datenquellen, und klicken Sie auf Datenquelle erstellen.

    2. Wählen Sie im Schritt Allgemein für Verbindung die von Ihnen erstellte Oracle Database-Verbindung.

    3. Geben Sie unter Name einen Namen für die Datenquelle ein.

    4. Geben Sie unter Abfrage eine Abfrage an (in diesem Beispiel wird SQL verwendet). Für eine parametrisierte Abfrage müssen Sie eine Filterbedingung (WHERE-Klausel) einfügen, die eine relationale Spalte in Ihrer Quelle einem Platzhalter zuordnet. Sie geben die Position der Variable mithilfe eines Platzhalters (?) in der Abfragesyntax an. Der Platzhalter steht für einen Parameter, der in einem späteren Schritt übergeben wird.

      select * from SB_DT where DIMENSION_YEAR=?

      Beispiel: Angenommen, Ihre relationale Datenbank enthält die folgende Tabelle namens "SB_DT". Die Tabelle enthält die Spalte "DIMENSION_YEAR" mit Monaten als Werte:
      Abbildung einer relationalen Datenbanktabelle, wobei die Spalte "DIMENSION_YEAR" ausgewählt ist. Alle enthaltenen Werte sind Monate: "Jul", "Aug", "Aug", "Sep", "Sep", "Oct" usw.

      Um eine Variable für die Auswahl von Monatswerten aus der Spalte "DIMENSION_YEAR" zu verwenden, wenden sie die folgende Filtersyntax in der Abfrage an: where DIMENSION_YEAR=?
      Abbildung der Registerkarte "Allgemein" im Assistenten zum Erstellen von Datenquellen. Verbindung: SAMPLE.oracledb_conn, Name: oracledb_ds, Beschreibung: Datenquelle für Oracle-DB, Abfrage: select * from SB_DT where dimension_year=?

    5. Klicken Sie auf Weiter.

    6. Wenden Sie im Schritt Spalten den entsprechenden Datentyp an, den Essbase mit der jeweiligen Spalte aus Ihren relationalen Quelldaten verknüpfen soll.

      Beispiel: Legen Sie die numerischen Spalten auf dem Datentyp Double fest, und lassen Sie die alphanumerischen Spalten als Zeichenfolge.


      Abbildung der Registerkarte "Spalten" im Assistenten für das Erstellen von Datenquellen mit "Double" und "Zeichenfolge" als "Typ".

    7. Klicken Sie auf Weiter.

    8. Im Schritt "Parameter" wird "Param1" erstellt. Dieser Parameter ist vorhanden, weil Sie im Schritt "Allgemein" einen Platzhalter (?) in der Abfrage verwendet haben.

      Lassen Sie Variablen verwenden deaktiviert, doppelklicken Sie auf das Textfeld unter Wert, und geben einen Standardwert für den Laufzeitparameter an. Dieser Standardwert wird in Essbase als Fallback verwendet, falls der Parameter zur Laufzeit einen ungültigen Kontext aufweist. Dieser Schritt ist wichtig, wenn Sie Laufzeitparameter in Drillthrough-Berichtsdefinitionen verwenden möchten.

      Sie können den Namen von "Param1" auch in einen aussagekräftigen Namen für Ihren Anwendungsfall ändern. Sie können ihn beispielsweise in param_G_month umbenennen, um anzugeben, dass der Parameter eine globale Variable für den aktuellen Monat verwendet. Sie können ihn auch in param_<appName>_month umbenennen, um anzugeben, dass der Parameter eine Variable auf Anwendungsebene für den aktuellen Monat verwendet. Das Anpassen der Parameternamen kann hilfreich sein, wenn Sie Parameter mit Essbase-Serverlogdateien debuggen.


      Abbildung der Registerkarte "Parameter" im Assistenten zum Erstellen von Datenquellen. "Variablen verwenden" ist deaktiviert, und als Wert wurde "Jan" eingegeben.

      Wenn Sie den Parameter so anpassen möchten, dass er eine Substitutionsvariable referenziert, müssen Sie keinen Standardwert angeben. Siehe Substitutionsvariablen in einer Datenquelle verwenden anstelle dieses Themas.

    9. Klicken Sie auf Weiter.

    10. In der Vorschau sehen Sie, dass der Standardparameter auf Ihre Abfrage angewendet wurde. Folglich wird die Vorschau nur mit externen Quelldatensätzen aufgefüllt, bei denen der Wert der DIMENSION_YEAR-Spalte "Jan" ist.


      Abbildung der Registerkarte "Vorschau" im Assistenten für das Erstellen von Datenquellen, wobei nur Datensätze mit "DIMENSION_YEAR = Jan" angezeigt werden.

      Obwohl in der Vorschau nur Werte mit angewendetem Standardparameter angezeigt wurden, können Sie später, wenn Sie Laufzeitparameter für die Drillthrough-Berichtsdefinition implementieren, auf mehr externe Daten zugreifen, als in der Vorschau sichtbar waren.

    11. Klicken Sie auf Speichern, um die Datenquelle basierend auf dieser Abfrage Ihrer externen Quelldaten zu erstellen. Für die Datenquelle ist die Implementierung von Laufzeitparametern aktiviert.

Substitutionsvariablen in einer Datenquelle verwenden

Im folgenden Workflow ist dargestellt, wie Sie eine Essbase-Datenquelle aus einer Abfrage von externen Quelldaten erstellen und dabei eine in Essbase definierte Substitutionsvariable verwenden. Durch die Substitutionsvariable können Sie die Abfrage, die Daten aus Ihrer Quelle abruft, flexibler gestalten.

Im folgenden Beispiel verwenden Sie in Essbase eine Substitutionsvariable zur Angabe des aktuellen Monats. Statt Datenquellen monatlich mit Daten für den aktuellen Monat zu aktualisieren, können Sie die Datenquellen unverändert lassen und nur die von Ihnen definierte Substitutionsvariable aktualisieren.

  1. Erstellen Sie eine globale Substitutionsvariable oder eine Anwendungsebene.


    Abbildung einer auf Anwendungsebene erstellten Substitutionsvariable. Name: CurrMonth, Wert: Nov

  2. Rufen Sie eine Verbindung zur externen Datenquelle ab, oder erstellen Sie eine solche Verbindung (erstellen Sie beispielsweise eine Verbindung zu Oracle Database).

    Sie können eine globale Verbindung verwenden, falls eine solche bereits auf der Seite "Quellen" der Essbase-Weboberfläche vorhanden ist. Sie können aber auch eine Verbindung auf Anwendungsebene erstellen.

  3. Erstellen Sie eine Datenquelle über die Verbindung, mit der Sie auf Oracle Database zugreifen.

    Sie können eine Datenquelle global definieren, wenn sie für alle Anwendungen verfügbar sein soll. Alternativ können Sie sie auf Anwendungsebene definieren.

    1. Wählen Sie im Schritt Allgemein für Verbindung die von Ihnen erstellte Oracle Database-Verbindung.

    2. Geben Sie unter Name einen Namen für die Datenquelle ein.

    3. Geben Sie unter Abfrage eine Abfrage an (in diesem Beispiel wird SQL verwendet). Für eine parametrisierte Abfrage müssen Sie eine Filterbedingung (WHERE-Klausel) einfügen, die eine relationale Spalte in Ihrer Quelle einem Platzhalter zuordnet. Sie geben die Position der Variable mithilfe eines Platzhalters (?) in der Abfragesyntax in der Tabelle an. Der Platzhalter steht für einen Parameter, der in einem späteren Schritt übergeben wird.

      select * from SB_DT where DIMENSION_YEAR=?

      Beispiel: Angenommen, Ihre relationale Datenbank enthält die folgende Tabelle namens "SB_DT". Die Tabelle enthält die Spalte "DIMENSION_YEAR" mit Monaten als Werte:
      Abbildung einer relationalen Datenbanktabelle, wobei die Spalte "DIMENSION_YEAR" ausgewählt ist. Alle enthaltenen Werte sind Monate: "Jul", "Aug", "Aug", "Sep", "Sep", "Oct" usw.

      Um eine Variable für die Auswahl von Monatswerten aus der Spalte "DIMENSION_YEAR" zu verwenden, wenden sie die folgende Filtersyntax in der Abfrage an: where DIMENSION_YEAR=?
      Abbildung der Registerkarte "Allgemein" im Assistenten zum Erstellen von Datenquellen. Verbindung: SAMPLE.oracledb_conn, Name: oracledb_ds, Beschreibung: Datenquelle für Oracle-DB, Abfrage: select * from SB_DT where dimension_year=?

    4. Klicken Sie auf Weiter.

    5. Wenden Sie im Schritt Spalten den entsprechenden Datentyp an, den Essbase mit der jeweiligen Spalte aus Ihren relationalen Quelldaten verknüpfen soll.

      Beispiel: Legen Sie die numerischen Spalten auf dem Datentyp Double fest, und lassen Sie die alphanumerischen Spalten als Zeichenfolge.


      Abbildung der Registerkarte "Spalten" im Assistenten für das Erstellen von Datenquellen mit "Double" und "Zeichenfolge" als "Typ".

    6. Klicken Sie auf Weiter.

    7. Im Schritt "Parameter" wird "Param1" erstellt. Dieser Parameter ist vorhanden, weil Sie in der Abfrage im Schritt "Allgemein" eine ? verwendet haben. Um Param1 so anzupassen, dass es eine Substitutionsvariable referenziert, klicken Sie auf Variablen verwenden, und wählen Sie eine Substitutionsvariable in der Dropdown-Liste Wert aus.

      Wenn Sie eine Datenquelle in einer Anwendung erstellen, stehen Substitutionsvariablen sowohl auf globaler als auch auf Anwendungsebene zur Auswahl. Den Variablen auf Anwendungsebene ist der Anwendungsname als Präfix vorangestellt. Wenn Sie eine globale Datenquelle erstellen, stehen nur globale Substitutionsvariablen zur Auswahl.

      Sie können den Namen von Param1 in einen aussagekräftigen Namen für Ihren Anwendungsfall ändern. Sie können ihn beispielsweise in param_G_month umbenennen, um anzugeben, dass der Parameter eine globale Variable für den aktuellen Monat verwendet. Sie können ihn auch in param_<appName>_month umbenennen, um anzugeben, dass der Parameter eine Variable auf Anwendungsebene für den aktuellen Monat verwendet. Das Anpassen der Parameternamen kann hilfreich sein, wenn Sie Parameter mit Essbase-Serverlogdateien debuggen.


      Abbildung der Registerkarte "Parameter" im Assistenten zum Erstellen von Datenquellen. "Variablen verwenden" ist aktiviert, und als Wert ist "Sample.CurrMonth" angegeben.

    8. Klicken Sie auf Weiter.

    9. In der Vorschau sehen Sie, dass die Substitutionsvariable auf Ihre Abfrage angewendet wurde. Folglich wird die Vorschau nur mit externen Quelldatensätzen aufgefüllt, bei denen der Wert der DIMENSION_YEAR-Spalte "Aug" ist.


      Abbildung der Registerkarte "Vorschau" im Assistenten für das Erstellen von Datenquellen, wobei nur Datensätze mit "DIMENSION_YEAR = Aug" angezeigt werden.

    10. Klicken Sie auf Speichern, um eine Datenquelle basierend auf dieser Abfrage Ihrer externen Quelldaten zu erstellen.