Parameter für Datenquellen implementieren

Um Datenquellen flexibler zu machen, können Sie Laufzeitparameter in der Abfrage implementieren, damit in der Datenquelle Variablen verwendet werden können.

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 eine zur Laufzeit definierte Variable ist.

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

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

    • Legen Sie eine Substitutionsvariable 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 zu implementieren, müssen Sie ein Anwendungsmanager sein oder eine höhere Rolle besitzen.

Wenn Sie die Verwendung von Variablen in Essbase-Datenquellen aktivieren, können Sie Vorgänge optimieren, weil dadurch weniger Datenquellen verwaltet werden müssen. 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 Datenbankmanager überwacht einen wiederkehrenden Dataload-Job, bei dem monatlich Daten in den Cube geladen werden. Der Datenbankmanager kann jetzt eine Substitutionsvariable verwenden, um Daten für den aktuellen Monat zu laden, anstatt eine Laderegel für jeden Monat einzeln zu verwalten.

  • Ein Anwendungsmanager verwaltet Drillthrough-Berichtsdefinitionen für verschiedene geschäftliche Anwendungsfälle. Der Anwendungsmanager implementiert Variablen in der zugrunde liegenden Datenquelle, die Smart View-Benutzer bei ihren Drillthrough-Vorgängen abrufen können. Daher muss der Anwendungsmanager 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. Eine globale Datenquelle können Sie nur als Serviceadministrator erstellen. Klicken Sie auf Quellen, klicken Sie unter Ihrem Benutzernamen auf die Registerkarte Datenquellen und dann auf Datenquelle erstellen.

      Zum Erstellen einer Datenquelle auf Anwendungsebene müssen Sie Anwendungsmanager oder Poweruser mit Anwendungsmanagementberechtigung für die angegebene Anwendung sein. Klicken Sie auf der Registerkarte Anwendungen auf einen Anwendungsnamen. Klicken Sie anschließend auf Quellen, klicken Sie unter Ihrem Benutzernamen auf die Registerkarte Datenquellen und dann auf Datenquelle erstellen.

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

    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.

      Wenn Sie eine Variable für die Auswahl von Monatswerten aus der Spalte "DIMENSION_YEAR" verwenden möchten, 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: Setzen Sie die numerischen Spalten auf den Datentyp Double, und lassen Sie für die alphanumerischen Spalten den Datentyp unverändert 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 Sie einen Standardwert für den Laufzeitparameter ein. 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. In diesem Fall finden Sie weitere Informationen unter Substitutionsvariablen in einer Datenquelle verwenden.

    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 Erstellen, 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 Substitutionsvariable auf globaler oder Anwendungsebene.


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

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

    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 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 Werten:
      Abbildung einer relationalen Datenbanktabelle, wobei die Spalte "DIMENSION_YEAR" ausgewählt ist. Alle enthaltenen Werte sind Monate: "Jul", "Aug", "Aug", "Sep", "Sep", "Oct" usw.

      Wenn Sie eine Variable für die Auswahl von Monatswerten aus der Spalte "DIMENSION_YEAR" verwenden möchten, 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: Setzen Sie die numerischen Spalten auf den Datentyp Double, und lassen Sie für die alphanumerischen Spalten den Datentyp unverändert 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 im Schritt "Allgemein" den Platzhalter ? in der Abfrage verwendet haben. Um Param1 so anzupassen, dass er 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 Erstellen, um eine Datenquelle basierend auf dieser Abfrage Ihrer externen Quelldaten zu erstellen.