Skip to content

Oracle SQL Server Transformation

Die Oracle SQL Server Transformation wird in der Enterprise Version von process.science für Power BI zur Aufbereitung der Daten verwendet. Das Paket ist so konzipiert, dass es die Daten aus der Oracle Datenbank in eine Form bringt, die für Power BI geeignet ist. Es erstellt vier Tabellen, die für die Analyse in Power BI verwendet werden können.

Vorbereiten der Eingabetabelle

Bevor die Skripte verwendet werden können, müssen Sie sicherstellen, dass Ihre Eingabetabelle die folgenden Anforderungen erfüllt. Die Spaltennamen für case_id, activity und timestamp sind festgelegt und müssen in Ihrer Eingabetabelle vorhanden sein. Die anderen Namen können im Skript geändert werden.

FeldnameBeschreibungDatentypPflichtfeld
case_idÜber dieses Feld können die Prozessinstanzen unterschieden werden.NVARCHAR2
activityDieses Feld beschreibt die Aktivität, die stattgefunden hat.NVARCHAR2
activity_groupedDieses Feld beschreibt die Gruppe der Aktivität, die stattgefunden hat.NVARCHAR2
timestampDieses Feld beschreibt, wann ein Ereignis stattgefunden hat.TIMESTAMP
timestamp_endDieses Feld kann verwendet werden, um die Dauer von Aktivitäten zu berechnen.TIMESTAMP
sort_keyDieses Feld kann verwendet werden, um die Sortierung des Ereignisprotokolls anzupassen.NUMBER
valueHier können Sie die Kosten für das aktuelle Ereignis festlegen.NUMBER
automatedHier können Sie festlegen, ob der Vorgang automatisiert wurde oder nicht.NUMBER
resourceÜber dieses Feld können Nutzerinformationen pro Aktivität mitgegeben werden .Beliebig
Zusätzliche AktivitätswerteWeitere Informationen pro Aktivität, z. B. die Menge der Positionen. Alle Felder, die nicht mit anderen Namen übereinstimmen, werden als zusätzliche Aktivitätswerte abgebildet und in der neu erstellten Ereignisprotokolltabelle gespeichert.Beliebig
Additional Cases ValuesWeitere Informationen pro Fall, z.B. ein Unternehmensbereich. Alle Felder, die mit case_ beginnen, werden als zusätzliche Fallwerte abgebildet und in der neu erstellten Falltabelle gespeichert.Beliebig
Zusätzliche Aktivitätswerte gruppiertWeitere Informationen pro Aktivitätsgruppe, z. B. die Menge der Positionen. Alle Felder, die mit _grouped enden, werden als zusätzliche Aktivitätsgruppenwerte abgebildet und in der neu erstellten Ereignisprotokolltabelle gespeichert.Beliebig

Herunterladen der Skripte

Die Skripte können immer in der aktuellsten Version aus unserem Self Service Portal heruntergeladen werden. Die Skripte sind in einer ZIP-Datei enthalten und müssen entpackt werden.

Installation und Konfiguration

Schema anpassen

Das Schema für Input und Output muss in den Skripten angepasst werden. Dies erfolgt in Skript 6_PerformTransformation.sql.

Erstellen der Helper-Funktionen

  1. Öffnen Sie das Skript 0_CreateHelperProcedures.sql und führen Sie es in Ihrer Datenbank aus.
  2. Das Skript erstellt die Funktionen PS_TIMESTAMP_DIFF und PS_CHECK_COLUMN_EXISTS in Ihrem Ausgabeschema.

Erstellen der statischen Tabellen

  1. Öffnen Sie das Skript 1_CreateStaticTables.sql und führen Sie es in Ihrer Datenbank aus.
  2. Das Skript erstellt die Tabellen filter_and, filter_or und wenn die gruppierte Berechnung stattfinden soll auch die Tabellen filter_and_grouped, filter_or_grouped und activity_group_map in Ihrem Ausgabeschema.

Dieses Skript muss immer dann ausgeführt werden, wenn sich die Struktur der Eingabetabelle ändert.

Erstellen der Prozeduren

Im nächsten Schritt müssen die Prozeduren erstellt werden, die die Daten in die Tabellen schreiben. Dafür müssen die Skripte 2_CreateEventLogProcedure.sql, 3_CreateEventLogGroupedProcedure.sql, 4_CreateAdditionalGroupedTablesProcedure.sql , 5_CreateCasesDataProcedure.sql ausgeführt werden. Dies muss lediglich einmalig erfolgen.

Ereignisprotokoll (Event Log)

Die Prozedur PS_CREATE_EVENT_LOG_TABLE erstellt die Tabelle eventlog in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Alle zusätzlichen Spalten, die nicht mit case_ anfangen oder mit _grouped enden, werden in der Tabelle eventlog gespeichert.

sql
CREATE OR REPLACE PROCEDURE PS_CREATE_EVENT_LOG_TABLE (
    SCHEMA_NAME_IN IN NVARCHAR2,
    SCHEMA_NAME_OUT IN NVARCHAR2,
    TABLE_NAME_INPUT IN NVARCHAR2,
    ACTIVITY_GROUPED_NAME IN NVARCHAR2,
    TIMESTAMP_END_NAME IN NVARCHAR2,
    VALUE_NAME IN NVARCHAR2,
    AUTOMATED_NAME IN NVARCHAR2,
    RESOURCE_NAME IN NVARCHAR2,
    SORT_KEY_NAME IN NVARCHAR2
)

Sind die dynamischen Spalten (timestamp_end, sort_key, value, automated und resource) nicht in der Eingabetabelle vorhanden, werden sie automatisch mit Standardwerten befüllt.

Ereignisprotokoll gruppiert (Event Log Grouped)

Die Prozedur PS_CREATE_EVENT_LOG_GROUPED_TABLE erstellt die Tabelle eventlog_grouped in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Dieses Skript wird nur ausgeführt, wenn die gruppierte Berechnung stattfinden soll, also die Spalte activity_grouped in der Eingabetabelle vorhanden ist. Alle zusätzlichen Spalten mit dem Suffix _grouped werden in der Tabelle eventlog_grouped gespeichert.

sql
CREATE OR REPLACE PROCEDURE PS_CREATE_EVENT_LOG_GROUPED_TABLE (
    SCHEMA_NAME_IN IN VARCHAR2,
    SCHEMA_NAME_OUT IN VARCHAR2,
    TABLE_NAME_INPUT IN VARCHAR2,
    ACTIVITY_GROUPED_NAME IN VARCHAR2,
    TIMESTAMP_END_NAME IN VARCHAR2,
    VALUE_NAME IN VARCHAR2,
    AUTOMATED_NAME IN VARCHAR2,
    RESOURCE_NAME IN VARCHAR2,
    SORT_KEY_NAME IN VARCHAR2,
    PERFORM_GROUPED_CALCULATION OUT BOOLEAN
)

Zusätzliche gruppierte Tabellen (Additional Grouped Tables)

Die Prozedur PS_CREATE_ADDITIONAL_GROUPED_TABLES erstellt die Tabellen filter_and_grouped und filter_or_grouped. Diese Prozedur wird nur ausgeführt, wenn die gruppierte Berechnung stattfinden soll.

sql
CREATE OR REPLACE PROCEDURE PS_CREATE_ADDITIONAL_GROUPED_TABLES(
    SCHEMA_NAME_OUT IN NVARCHAR2,
    PERFORM_GROUPED_CALCULATION IN BOOLEAN
)

Falltabelle (Cases Data)

Die Prozedur PS_CREATE_CASES_DATA_TABLE erstellt die Tabelle cases_data in Ihrem Ausgabeschema und füllt sie mit den Daten aus der Eingabetabelle. Alle zusätzlichen Spalten, die mit case_ beginnen, werden in der Tabelle cases_data gespeichert.

sql
CREATE OR REPLACE PROCEDURE PS_CREATE_CASES_DATA_TABLE(
    SCHEMA_NAME_IN IN NVARCHAR2,
    SCHEMA_NAME_OUT IN NVARCHAR2,
    TABLE_NAME_INPUT IN NVARCHAR2,
    PERFORM_GROUPED_CALCULATION IN BOOLEAN
)

Laden der Daten

Um die Daten zu laden muss das Skript 6_PerformTransformation.sql ausgeführt werden. Dieses Skript ruft die Prozeduren auf, die die Daten in die Tabellen schreiben. In diesem Skript müssen oben die Informationen zur Eingabetabelle und den dynamischen Spalten angepasst werden.

sql
DECLARE
 -- **************** Define the table and column names here ********************** --
    SCHEMA_NAME_IN              NVARCHAR2(10) := 'ADMIN'; -- Change input schema name here
    SCHEMA_NAME_OUT             NVARCHAR2(10) := 'ADMIN'; -- Change output schema name here
    TABLE_NAME_INPUT            NVARCHAR2(100) := 'EVENTLOG_EN'; -- Change input event log name here
    ACTIVITY_GROUPED_NAME       NVARCHAR2(50) := 'ACTIVITY_GROUPED'; -- Change activity_grouped column name here
    TIMESTAMP_END_NAME          NVARCHAR2(50) := 'TIMESTAMP_END'; -- Change timestamp_end column name here
    VALUE_NAME                  NVARCHAR2(50) := 'ACTIVITY_COST'; -- Change value column name here
    AUTOMATED_NAME              NVARCHAR2(50) := 'AUTOMATED'; -- Change automated column name here
    RESOURCE_NAME               NVARCHAR2(50) := 'RESOURCE'; -- Change RESOURCE column name here
    SORT_KEY_NAME               NVARCHAR2(50) := 'SORT_KEY'; -- Change sort_key column name here
    PERFORM_GROUPED_CALCULATION BOOLEAN; -- DO NOT CHANGE OR REMOVE
 -- **************** Define the table and column names here ********************** --