Vor- und Nachverarbeitungsfunktionen

Sie können PL/SQL-Funktionen für Oracle BI Publisher definieren, die ausgeführt werden, wenn eine Verbindung zu einer JDBC-Datenquelle erstellt (Vorverarbeitungsfunktion) oder geschlossen wird (Nachverarbeitungsfunktion).

Die Funktion muss einen booleschen Wert zurückgeben. Dieses Feature wird nur für Oracle-Datenbanken unterstützt.

Mit diesen beiden Feldern kann der Administrator die Kontextattribute eines Benutzers festlegen, bevor eine Verbindung zu einer Datenbank hergestellt wird, und die Attribute verwerfen, wenn die Verbindung durch die Extraktions-Engine getrennt wurde.

Die Systemvariable :xdo_user_name kann als Bind-Variable verwendet werden, um den Anmeldebenutzernamen an die PL/SQL-Funktionsaufrufe zu übergeben. Indem Sie den Anmeldebenutzerkontext auf diese Weise festlegen, können Sie Daten auf Datenquellenebene (anstatt auf SQL-Abfrageebene) sichern.

Beispielfunktion:

FUNCTION set_per_process_username (username_in IN VARCHAR2)
   RETURN BOOLEAN IS
     BEGIN
     SETUSERCONTEXT(username_in);
     return TRUE;
   END set_per_process_username

Um diese Funktion jedes Mal aufzurufen, wenn eine Verbindung zur Datenbank hergestellt wird, geben Sie Folgendes in das Feld Vorverarbeitungsfunktion ein: set_per_process_username(:xdo_user_name)

Sie könnten auch jedes Mal, wenn ein Benutzer eine Verbindung herstellt oder trennt, eine Zeile in die LOGTAB-Tabelle einfügen:

CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2) 
RETURN BOOLEAN AS
   BEGIN
   INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode);
   RETURN true;
   END BIP_LOG;

Geben Sie Folgendes in das Feld Vorverarbeitungsfunktion ein: BIP_LOG(:xdo_user_name)

Wenn eine neue Verbindung zur Datenbank hergestellt wird, wird diese in der LOGTAB-Tabelle protokolliert. Der SMODE-Wert gibt die Aktivität als Einstieg oder Ende an. Wenn Sie diese Funktion auch als Nachverarbeitungsfunktion aufrufen, werden Ergebnisse wie die in der unten stehenden Tabelle zurückgegeben.