Erstellung von Anwendungen für IBM TRIRIGA Application Platform 3

Werbung
IBM TRIRIGA Application Platform
Version 3 Release 5.2
Erstellung von Anwendungen für
IBM TRIRIGA Application Platform:
Leistungsframework
IBM
Hinweis
Vor Verwendung dieser Informationen und des darin beschriebenen Produkts sollten die Informationen unter
„Bemerkungen” auf Seite 79 gelesen werden.
Diese Ausgabe bezieht sich auf Version 3, Release 5, Modifikation 2 von IBM TRIRIGA Application Platform und
alle nachfolgenden Releases und Modifikationen, bis dieser Hinweis in einer Neuausgabe geändert wird.
© Copyright IBM Corporation 2011, 2016.
Inhaltsverzeichnis
Kapitel 1. Leistungsframework . . . . . 1
Kapitel 2. Datenstrukturen . . . . . . . 3
Architekturübersicht . . . . . . . . . . . . 3
Fakttabellen . . . . . . . . . . . . . . 4
Beispielfakttabelle und zugehörige Dimensionen . 7
Metrikstruktur . . . . . . . . . . . . . . 8
ETL-Integration . . . . . . . . . . . . . 10
ETL-Integrationsarchitektur . . . . . . . . 10
ETL-Integrationsprozess . . . . . . . . . 12
Vorausgesetzte Konfiguration für die ETL-Integration . . . . . . . . . . . . . . . 15
ETL-Transformationen definieren und verwalten 16
ETL-Prozesse mit Pentaho Spoon verwenden 16
ETL-Prozesse mit dem Konfigurationseditor
von IBM Tivoli Directory Integrator verwenden . . . . . . . . . . . . . . . 35
ETL-Transformationen ausführen . . . . . . 58
ETL-Jobelemente, Jobgruppen und Jobplaner
59
ETL-Jobelemente erstellen oder ändern . . . 59
Jobgruppen hinzufügen oder ändern . . . . 62
Jobplaner erstellen oder ändern. . . . . . 62
Transformationsobjekte anpassen . . . . . . 64
Transformationsgeschäftsobjekte, Formulare
und Workflows definieren . . . . . . . 64
Transformations-XML im Content Manager
speichern . . . . . . . . . . . . . 65
Workflowlaufzeitumgebung konfigurieren . . 65
Angepasste ETL-Workflowaufgabenspezifikation ausführen . . . . . . . . . . . . 65
© Copyright IBM Corp. 2011, 2016
Kapitel 3. Metriken. . . . . . . . . . 67
Metrikberichte .
Schlüsselmetriken
Formularmetriken
Datenfilterung
Unterberichte .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
68
68
69
69
Kapitel 4. Hierarchieflattener . . . . . 71
Flache Hierarchien . . . . . . . .
Beispiele für flache Hierarchien. . .
Manager für hierarchische Strukturen. .
Auf hierarchische Strukturen zugreifen
Datenhierarchie erstellen . . . . .
Formularhierarchie erstellen . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
72
73
73
74
74
Kapitel 5. Fakttabellen . . . . . . . . 75
Liste der unterstützten Fakttabellen und Metriken
75
Fakten, die spezielle Staging-Tabellen und ETL-Prozesse erfordern . . . . . . . . . . . . . 75
Abhängige ETL-Prozesse . . . . . . . . . . 76
Bemerkungen . . . . . . . . . . . . 79
Marken . . . . . . . . . . . . . . . . 81
Nutzungsbedingungen für die Produktdokumentation . . . . . . . . . . . . . . . . . 81
IBM Online-Datenschutzerklärung . . . . . . . 82
iii
iv
© Copyright IBM Corp. 2011, 2016
Kapitel 1. Leistungsframework
IBM® TRIRIGA Workplace Performance Management und IBM TRIRIGA Real Estate Environmental Sustainability sind funktionsfähige Lösungen, mit deren Hilfe
Unternehmen Prozesse, die mit Facilitys und Immobilien in Verbindung stehen,
strategisch planen, verwalten, auswerten und verbessern können.
Das Leistungsframework von IBM TRIRIGA wird in TRIRIGA Workplace Performance Management und TRIRIGA Real Estate Environmental Sustainability mithilfe der folgenden Komponenten verwaltet:
v Services für Datentransformationen und das Laden von Fakttabellen
v Metrikbuilder, der den Datenmodellierer verwendet
v Metrikabfrageengine
v Erweiterter Report Manager für das Erstellen von Metrikberichten
v Erweiterte Portalfeatures für die Ausgabe von Metrikscorecards
v Reihe vordefinierter Metriken, Berichte und Alerts, die die Produktivität der
zahlreichen Rollen, die in TRIRIGA unterstützt werden, erheblich verbessert
© Copyright IBM Corp. 2011, 2016
1
2
© Copyright IBM Corp. 2011, 2016
Kapitel 2. Datenstrukturen
TRIRIGA verwendet eine ETL-Entwicklungsumgebung (Extract, Transform, and
Load, extrahieren, transformieren und laden) als Mechanismus für das Verschieben
von Daten aus Geschäftsobjekttabellen in Fakttabellen. Für die Darstellung der Metriken, Berichte, Scorecards und sonstigen Leistungskennzahlen müssen die Daten
in Form von Fakttabellen und flachen Hierarchietabellen vorliegen, die von den
Berichtstools verarbeitet werden können.
Architekturübersicht
Die Quellendaten für TRIRIGA Workplace Performance Management stammen aus
der TRIRIGA-Anwendungsdatenbank, Finanzzusammenfassungsdaten, die aus einem externen Finanzsystem importiert werden, und Gebäudezählerdaten, die aus
externen Gebäudemanagementsystemen importiert werden.
Mit der ETL-Technologie werden die Quellendaten in Fakttabellen geladen. Die
Fakttabellen und Dimensionstabellen befinden sich in demselben Datenbankrepository wie die TRIRIGA-Anwendungen. In den Fakttabellen werden die numerischen
Daten, die so genannten Fakten, gespeichert, die zur Berechnung der TRIRIGA
Workplace Performance Management-Metrikwerte verwendet werden. Jede Zeile in
einer Fakttabelle referenziert mindestens ein zugehöriges Geschäftsobjekt, mindestens eine Klassifikation oder mindestens eine Liste, die die Fakten gruppiert und
filtert. Diese Zeilen werden als Dimensionen bezeichnet.
Die Metrikabfrageengine führt Abfragen in den Fakt- und Dimensionstabellen aus.
Metrikabfragen berechnen Metrikwerte schnell neu, während der Benutzer in einer
hierarchischen Dimension nach oben und nach unten navigiert.
Die folgende Abbildung zeigt die einzelnen Ebenen, aus denen sich diese Architektur zusammensetzt, und den Datenfluss zwischen diesen Ebenen:
© Copyright IBM Corp. 2011, 2016
3
WPM Performance Manager
WPMrollenbasierte
Portale
WPM-Berichte
Metrikabfrageengine
Fakttabellen
Dimensionstabellen
ETL-Scripts
TRIRIGA IWMS
Finanzzusammenfassungsdaten
Staging-Tabellen
ETL-Scripts
Gebäudezählerdaten
Fakttabellen
In Fakttabellen werden die Daten gespeichert, die zur Berechnung der Metriken in
Metrikberichten verwendet werden. Fakttabellen werden nur über ETL-Transformationen gefüllt. Um ein Geschäftsobjekt als Fakttabelle zu identifizieren, setzen
Sie im Datenmodellierer das Flag "Extern verwaltet" in der Geschäftsobjektdefinition für die Fakttabelle.
Jede Fakttabelle wird in IBM TRIRIGA Application Platform als spezielles Geschäftsobjekt mit einigen oder allen der folgenden Elementen implementiert:
4
© Copyright IBM Corp. 2011, 2016
Tabelle 1. Fakttabellen
Fakttabellenelement
Beschreibung
Hierarchische Dimensionen
Jede hierarchische Dimension ist ein
Locatorfeld für ein Geschäftsobjekt, das zu
einem hierarchischen Modul gehört (z. B.
Gebäude, Servicekostencode oder Stadt). Für
jede hierarchische Dimension gibt es eine
entsprechende hierarchische Struktur, die
Metrikberichte unterstützt.
Eine hierarchische Dimension kann auf ein
beliebiges oder auf alle Geschäftsobjekte in
einem Modul verweisen. Seien Sie dabei so
präzise wie möglich. Durch die Angabe eines bestimmten Geschäftsobjekts als Ziel
verbessert sich die Granularität Ihrer Berichte.
Für jede hierarchische Dimension muss eine
entsprechende hierarchische Struktur definiert werden. Hierarchische Strukturen werden für Drillpfade in Metrikberichten
verwendet.
Nicht hierarchische Dimensionen
Jede nicht hierarchische Dimension ist ein
Listenfeld oder ein Locatorfeld für ein
Geschäftsobjekt, das zu einem nicht hierarchischen Modul gehört (z. B. Aufgabe oder
Person).
Numerische Faktfelder
Numerische Faktfelder sind numerische
Standardfelder, einschließlich oder ausschließlich Eigenschaften für die Maßeinheit.
Numerische Faktfelder können einem der
folgenden Typen zugeordnet werden:
v Additiv – Können über alle Dimensionen
summiert werden.
v Semi-additiv – Können nur über einige
Dimensionen summiert werden. Die monatlich erfasste Gesamtanzahl der Personen für ein Gebäude kann beispielsweise
nicht vierteljährlich summiert werden,
weil dies keine Summe für das Quartal
liefern würde. Sie kann jedoch nach Geografie summiert werden. Deshalb ist dieses Fakt im Zeitverlauf nicht additiv.
v Nicht additiv – Können über keine Dimension summiert werden. Ein Verhältnis
ist beispielsweise ein nicht additives Fakt,
weil Sie ein Verhältnis nicht summieren
können. Felder, die Werte aus verschiedenen Basiseinheiten enthalten, sind ebenfalls nicht additiv.
Maßeinheitenfelder
Maßeinheitenfelder (mit Ausnahme von
Bereichsfeldern) werden in ihrer lokalen, eingegebenen Maßeinheit erfasst.
Bereichsfelder
Bereichsfelder werden in angloamerikanischen (z. B. Quadratfuß) und metrischen (z.
B. Quadratmeter) Werten erfasst.
Kapitel 2. Datenstrukturen
5
Tabelle 1. Fakttabellen (Forts.)
6
Fakttabellenelement
Beschreibung
Währungsfelder
Währungsfelder werden in der
Basiswährung erfasst. Es findet keine
Währungsumrechnung statt.
Aktueller Zeitraum
Die Zeitraumdimension ist eine
Sonderdimension, die verwendet wird, um
den Datums-/Zeitraum zu identifizieren, für
den ein einzelner Faktdatensatz gilt. Wahrscheinlich ist es der Zeitraum, in dem die
Daten erfasst wurden. In Fällen, in denen
die Zeitraumdimension nicht als Drillpfad
oder Filter verwendet wird, muss das Feld
"triCapturePeriodTX" ausgefüllt werden, um
die Dimension anzugeben, die zur Angabe
der Erfassungsperiode verwendet wird.
Wenn dieses Feld vorhanden ist, muss das
entsprechende Geschäftsobjekt für diese Dimension ein Feld mit dem Namen
"triCurrentBL" enthalten, das zur Kennzeichnung der Dimensionsdatensätze, die die aktuelle Periode widerspiegeln, verwendet
wird. Diese Datensätze werden dann verwendet, um die Ergebnismenge für den
Metrikbericht zu filtern.
Fiskalperiode
Die Klassifikation "Fiskalperiode" wird vom
ETL-Prozess verwendet, um die
Erfassungsperiode für Faktdatensätze zu definieren. Dies ist die primäre
Zeitraumdimension in Metrikberichten.
Da es verschiedene Fakttabellen geben kann,
die Daten enthalten, die auf verschiedenen
Erfassungszyklen mit einem einzigen
Datensatz für jede Ebene in der Hierarchie
basieren, kann jede Ebene als aktuelle Periode markiert werden. Wenn beispielsweise
eine Hierarchie des Typs "Jahr/Quartal/
Monat" in der Klassifikation "Fiskalperiode"
erstellt wird, können das aktuelle Jahr, das
aktuelle Quartal und der aktuelle Monat
identifiziert werden. Ein spezieller ETLJobtyp stellt einen Workflow bereit, mit dem
diese Daten synchronisiert werden können.
Als allgemeine Regel gilt, dass alle Daten in
einer Fakttabelle mit derselben
Zeitraumeinheit/-ebene (Jahr, Quartal, Monat) erfasst werden. Wenn die
Zeitraumeinheit/-ebene nach der Erfassung
der Daten für eine bestimmte Fakttabelle
geändert wird, müssen alle Daten in dieser
Fakttabelle auf die richtige Basiseinheit/
Ebene aktualisiert oder abgeschnitten/
entfernt werden.
© Copyright IBM Corp. 2011, 2016
Tabelle 1. Fakttabellen (Forts.)
Fakttabellenelement
Beschreibung
Geschäftsobjekt für Fakttabelle
Zur Identifizierung eines Geschäftsobjekts
als Geschäftsobjekt, das durch Fakttabellen
unterstützt wird, wählen Sie das Optionsfeld
"Extern verwaltet" in den
Geschäftsobjekteigenschaften aus, wenn Sie
das Geschäftsobjekt erstellen.
Tipp: Löschen oder ändern Sie keine Faktgeschäftsobjekte, Fakttabellen und ETLScripts, die mit der TRIRIGA-Standardsoftware geliefert werden. Anstatt ein vorhandenes Geschäftsobjekt, eine Fakttabelle oder ein ETL-Script zu ändern, kopieren
Sie das Objekt, die Tabelle bzw. das Script, benennen die Kopie um und passen
diese dann an Ihre Anforderungen an.
Beispielfakttabelle und zugehörige Dimensionen
Die Fakt- und Dimensionstabellen werden mit der Sternschemamethode des DataWarehouse-Designs erstellt. Sie werden in demselben Datenbankrepository wie
TRIRIGA-Anwendungen gespeichert.
Die folgende Abbildung zeigt ein Beispiel für eine der vorkonfigurierten Fakttabellen in TRIRIGA Workplace Performance Management:
Faktabellenfelder
Dimensionstabellen
Flächenkapazität
Gesamtanzahl der Personen
Flächengeschäftsobjekt
Verbleibende Kapazität
Flächenbereich
Gebäudegeschäftsobjekt
Zugeordnete Fläche
Lokationshierarchie
Flächen-ID
Geografiehierarchie
Gebäude-ID
Flächenklassenhierarchie
Lokations-ID
Gebäudeklassenhierarchie
Geografie-ID
Flächenklassen-ID
Gebäudepachthierarchie
Gebäudeklassen-ID
Gebäudepacht-ID
Die Abbildung zeigt die Flächenfakttabelle mit fünf Fakten: Flächenkapazität, Gesamtanzahl der Personen, Verbleibende Kapazität, Flächenbereich und Zugeordnete
Fläche. Die Flächenfakttabelle verweist außerdem auf sieben Dimensionen: Fläche,
Kapitel 2. Datenstrukturen
7
Gebäude, Lokation, Geografie, Flächenklasse, Gebäudeklasse und Gebäudepacht.
Die Dimensionen in der Fakttabelle verknüpfen die Fakten mit den entsprechenden
Dimensionstabellen. Einige Dimensionen sind hierarchisch, wie z. B. Lokation und
Geografie, und andere nicht, wie z. B. Fläche und Gebäude.
Flache Hierarchietabellen werden verwendet, um die untergeordneten Elemente eines ausgewählten Geschäftsobjekts zu identifizieren. Flache Hierarchietabellen ermöglichen der Metrikabfrageengine, hierarchische Module, Geschäftsobjekte und
Klassifikationen zu durchsuchen.
Die folgende Tabelle enthält ein Beispiel für eine flache Hierarchie, die auf der
Geografie basiert:
Tabelle 2. Beispiel für eine flache Hierarchie basierend auf Geografie
SPEC_ID
Nummer der
Ebene
SPEC_ID für
Ebene 1
SPEC_ID für
Ebene 2
SPEC_ID für
Ebene 3
SPEC_ID für
Ebene 4
Welt
1
Welt
Nicht zutreffend
Nicht zutreffend
Nicht zutreffend
Nordamerika
2
Welt
Nordamerika
Nicht zutreffend
Nicht zutreffend
EMEA
2
Welt
EMEA
Nicht zutreffend
Nicht zutreffend
APAC
2
Welt
APAC
Nicht zutreffend
Nicht zutreffend
Vereinigte
Staaten
3
Welt
Nordamerika
Vereinigte
Staaten
Nicht zutreffend
Kanada
3
Welt
Nordamerika
Kanada
Nicht zutreffend
Nevada
4
Welt
Nordamerika
Vereinigte
Staaten
Nevada
Texas
4
Welt
Nordamerika
Vereinigte
Staaten
Texas
Wenn Sie anhand des Beispiels beispielsweise alle Geografien identifizieren möchten, die untergeordnete Geografien von Nordamerika sind, müssen Sie zuerst die
SPEC_ID "Nordamerika" in der ersten Spalte der flachen Beispieltabelle, die auf
der Geografie basiert, suchen. Anschließend können Sie die Ebenennummer für
Nordamerika (2) verwenden, um die Filterspalte zu bestimmen. Mithilfe der SPEC_ID und der Ebenennummer können Sie alle Geografien identifizieren, die untergeordnete Elemente, in zweiter Ebene untergeordnete Elemente oder Elemente einer beliebigen Ebene unterhalb von Nordamerika sind.
Metrikstruktur
Die TRIRIGA Workplace Performance Management-Funktionalität konzentriert sich
auf die Erfassung von Metrikfakten und die Aktivierung von Metrikberichten.
Die meisten TRIRIGA-Metriken sind mehrdimensional, d. h., dieselbe Metrik bietet
eine allgemeine Übersichtsansicht (z. B. Gesamtbetriebskosten/Fläche für die gesamte Organisation und das gesamte Portfolio) und durch ein Drilldown durch
verschiedene Dimensionen oder Filter eine rollenspezifische Ansicht (z. B.
Gesamtbetriebskosten/Fläche für North American Operations für die Facilitys, die
von North American Operations verwaltet werden).
8
© Copyright IBM Corp. 2011, 2016
Metriken messen die Prozessleistung und liefern damit Ergebnisse, auf die hin Aktionen eingeleitet werden können. Bei den Messungen handelt es sich gewöhnlich
um Verhältnisse, Prozentsätze oder Scores. Metriken haben Ziele, Schwellenwerte,
Aktionsbedingungen, Abrechenbarkeitsunterstützung und Aktionsaufgaben.
TRIRIGA Workplace Performance Management enthält die folgenden Typen von
Metriken, die die Scorecardkategorien im Portalabschnitt "Schlüsselmetriken" sind:
Kundenmetriken
Messen die Kundenzufriedenheit.
Finanzmetriken
Messen die wirtschaftliche Leistung.
Portfoliometriken
Messen die betriebliche Auslastung und den Zustand des Assetlebenszyklus.
Prozessmetriken
Messen die Prozesseffizienz und -effektivität.
Berichts- und Analysemetriken
Analysieren eine bestimmte Leistungsmetrik.
TRIRIGA Real Estate Environmental Sustainability enthält außerdem die folgenden
Typen von Metriken:
Umwelt
Messen die Leistung von Umweltinitiativen.
Gebäudezähler
Messen die Kenndaten eines Gebäudes, die von Zählern und Sensoren gemeldet werden.
Die folgende allgemeine Prozessabbildung veranschaulicht, wie Metriken definiert,
erfasst und dem Benutzer präsentiert werden:
Staging
Externe
Daten
TRIRIGA
Fakt
Dimension
Metrikverarbeitungsengine
(Analyse-/Berichtstool)
TRIRIGA-Anwendungsportal
Die TRIRIGA-Datenbank ist die primäre Datenquelle für die Erfassung von Betriebsdaten, die in Fakttabellen geladen werden. Optional können Sie Daten, die in
Fakttabellen geladen werden sollen, auch aus anderen Quellen extrahieren.
Kapitel 2. Datenstrukturen
9
Jede Fakttabelle enthält die niedrigste Ebene aggregierter Daten (z. B. Gebäudeebene) für jede Metrikkategorie. Aus Effizienzgründen ist eine Fakttabelle eine denormalisierte (flache) Tabelle, die Datenelemente aus mehreren TRIRIGA-Tabellen enthält.
Die Dimensionstabelle enthält Dimensionen für jede Metrik. Dimensionen werden
aus Effizienzgründen in einer separaten Tabelle gespeichert. Die Fakttabelle enthält
einen Schlüssel (Spezifikations-ID) für jede Dimension. Die Dimensionstabelle kann
eine flache Hierarchietabelle oder eine TRIRIGA-Geschäftsobjekttabelle sein.
Die Metrikverarbeitungsengine (Analyse-/Berichtstool) generiert Metriken mithilfe
der Daten, die in Fakttabellen gespeichert sind, und Metrikkonfigurationsdaten
und Dimensionsdaten.
Metrikdaten werden Benutzern zusammen mit Benachrichtigungen, Aktionen und
Alerts in einem rollenbasierten Portal in verschiedenen Formen (einschließlich Berichten, Abfragen und Graphen), die in der Metrikkonfigurationstabelle definiert
sind, präsentiert. Ein Benutzer kann ein Drilldown zu einem bestimmten Objekt
oder Drillpfad durchführen, um die ihm präsentierten Metrikdaten weiter zu analysieren.
Die Erstellung von Metrikberichten ist von Metrikfakttabellen abhängig. Diese
Fakttabellen werden mit dem Datenmodellierer implementiert, aber anhand eines
eindeutigen Objekttyps identifiziert, der anzeigt, dass es sich um ein Metrikobjekt
handelt. Metrikobjekte werden anders als alle anderen Objekttypen, die über die
Metadatenschicht aktualisiert werden, über eine ETL-Entwicklungsumgebung gefüllt. Die Planung des ETL-Prozesses wird über das TRIRIGA-System mit dem Jobplaner gesteuert.
ETL-Integration
TRIRIGA verwendet entweder den Konfigurationseditor der Tivoli Directory Integrator-ETL-Entwicklungsumgebung oder das Designer-Tool "Spoon" der PentahoETL-Entwicklungsumgebung, um XML-Transformationsdateien zu generieren. Bei
der Ausführung dieser Transformationen über die API werden Daten aus Quellenin Zieltabellen verschoben.
ETL-Integrationsarchitektur
TRIRIGA verwendet zwei ETL-Umgebungen, um die ETL-Scripts zu erstellen, die
die Fakttabellen füllen. Die beiden ETL-Entwicklungsumgebungen sind der Konfigurationseditor von Tivoli Directory Integrator und das Pentaho-Tool für Datenintegration "Spoon". Mithilfe der ETL-Entwicklungsumgebungen können SQL-Abfragen erstellt werden, die Daten aus den TRIRIGA-Geschäftsobjekttabellen lesen und
die Ergebnisse den Fakt- und Dimensionsspalten der Fakttabellen zuordnen und
transformieren.
Die folgende Abbildung veranschaulicht den Datenfluss zwischen den folgenden
Schichten: Quellendaten, ETL-Entwicklungsumgebung und TRIRIGA Workplace
Performance Management-Datenmodell.
10
© Copyright IBM Corp. 2011, 2016
Quellendaten
ETL-Entwicklungsumgebung
WPM-Datenmodell
TRIRIGA IWMS
Facilitys
Fakttabellen
Immobilien
Konfigurationseditor
oder Spoon
Operationen
Dimensionstabellen
Projekte
Finanzzusammenfassungsdaten
Gebäudezählerdaten
Staging-Tabellen
ETL-Jobelemente sind die Geschäftsobjekte, die die ETL-Scripts referenzieren, die
zum Füllen der Fakttabellen verwendet werden.
TRIRIGA Workplace Performance Management verwendet TRIRIGA Application
Platform-Standardtools.
In der folgenden Abbildung werden die Tools der Anwendungsplattform gezeigt:
Kapitel 2. Datenstrukturen
11
WPM Performance Manager
WPMrollenbasierte
Portale
- Manager-Builder
- Portalabschnittsmanager
- Portalmanager
WPM-Berichte
Metrikabfrageengine
Fakttabellen
- Berichtsmanager
Dimensionstabellen
- ETL-Entwicklungsumgebung
- ETL-Jobelement
- ETL-Job-Scheduler
ETL-Scripts
TRIRIGA
IWMS
Finanzzusammenfassungsdaten
- Datenmodellierer
StagingTabellen
- TRIRIGA offline
ETL-Scripts
Gebäudezählerdaten
ETL-Integrationsprozess
Um Daten aus den Quellen- in Zieltabellen zu verschieben, führen Sie die ETLTransformationsdateien aus, die Sie im Konfigurationseditor von Tivoli Directory
Integrator oder in Pentaho Spoon über die API entwickelt haben.
Für jede Fakttabelle muss es eine Transformation geben. Fakttabellen werden nur
über ETL-Transformationen und nicht über die TRIRIGA-Anwendung gefüllt.
TRIRIGA Application Platform enthält einen Workflow, der zum Laden der Fakttabellen nach einem bestimmten Zeitplan ausgeführt wird. Der Workflow ruft eine
angepasste Workflowaufgabe für die Plattform auf, die die neueste Transformations-XML vom Content Manager abruft und die Tivoli Directory Integrator- oder
Kettle-API für die Durchführung der Transformation verwendet.
Der geplante ETL-Prozess ist mit den folgenden Lizenzen verfügbar:
12
© Copyright IBM Corp. 2011, 2016
v Beliebige Lizenz für IBM TRIRIGA Workplace Performance Management
v Lizenz für IBM TRIRIGA Real Estate Environmental Sustainability Manager
v Lizenz für IBM TRIRIGA Real Estate Environmental Sustainability Impact Manager
v Lizenz für IBM TRIRIGA Workplace Reservation Manager
v Lizenz für IBM TRIRIGA Workplace Reservation Manager for Small Installations
ETL-Entwicklungsumgebung
generiert Transformations-XML
XML speichern
XML öffnen
XML-Datei
für
Dateisystem
Für das Management der
Transformationen definiertes
TRIRIGA Application PlatformGeschäftsobjekt/Formular
Hochladen
Herunterladen
Content
Manager
Datenbank
Content
Manager
TRIRIGA Application PlatformWorkflow ruft gemäß dem
Zeitplan eine angepasste Aufgabe
für die Ausführung der
Transformationen auf
Es gibt drei Hauptprozesse:
v Konfiguration, einschließlich der Erstellung des
Transformationsgeschäftsobjekts/Transformationsformulars/
Transformationsnavigationselements und des Workflows selbst
v Erstellung bzw. Verwaltung der Transformations-XML mithilfe einer ETL-Entwicklungsumgebung
v Laufzeitumgebung, d. h. ein geplanter Workflow, der eine angepasste Workflowaufgabe für die regelmäßige Überprüfung der Transformationen zum Aktualisieren der Fakttabellen ausführt
Einschränkung: Weitere Lizenzen können für die Setup- und Wartungsprozesse erforderlich sein, z. B. eine Lizenz für das Modul "triJobItem". Die zum Erstellen und
Bearbeiten der ETLs erforderlichen Lizenzen unterscheiden sich von den für den
Laufzeitprozess erforderlichen Lizenzen.
Die folgende Abbildung enthält eine Zusammenfassung dieser Prozesse für
Pentaho Spoon-ETL-Transformationen:
Kapitel 2. Datenstrukturen
13
Konfiguration - Einmalig
Akteur 1
Anwendungsdesigner
In TRIRIGA Application Platform
- Geschäftsobjekt/Formular für Transformation erstellen
- Workflow für Aufruf der angepassten Aufgabe erstellen
Transformationen verwalten - Für jeden Fakt
Akteur 2
Anwendungsdesigner
Akteur 3
Professionelle Dienstleistungen
Erstellen
Bearbeiten
In TRIRIGA Application Platform
- Faktgeschäftsobjekt erstellen
- Zuordnung zwischen Fakt und
Metadaten bestimmen
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
herunterladen
In Spoon
- Transformations-XML erstellen
- In einer Datei im Dateisystem
speichern
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
hochladen
In Spoon
- Transformations-XML bearbeiten
- In einer Datei im Dateisystem
speichern
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
hochladen
Laufzeitumgebung - Gemäß Zeitplan
System
In TRIRIGA Application Platform
- Workflow löst angepasste Aufgabe für jede Transformation aus
- Variablen zusammenstellen
- XML in temporäre Datei herunterladen
- JNDI auf Anwendungsserver setzen
- Kettle-API zur Ausführung der Transformation aufrufen
Die folgende Abbildung enthält eine Zusammenfassung dieser Prozesse für ETLTransformationen mit dem Konfigurationseditor von Tivoli Directory Integrator:
14
© Copyright IBM Corp. 2011, 2016
Konfiguration - Einmalig
Akteur 1
Anwendungsdesigner
In TRIRIGA Application Platform
- Geschäftsobjekt/Formular für Transformation erstellen
- Workflow für Aufruf angepasster Aufgaben erstellen
- JDBC-Verbindungseinstellungen definieren
Transformationen verwalten - Für jeden Fakt
Akteur 2
Anwendungsdesigner
Akteur 3
Professionelle Dienstleistungen
Erstellen
Bearbeiten
In TRIRIGA Application Platform
- Faktgeschäftsobjekt erstellen
- Zuordnungen zwischen Fakt und
Metadaten bestimmen
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
herunterladen
Im Konfigurationseditor
- Transformations-XML erstellen
- In einer Datei im Dateisystem
speichern
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
hochladen
Im Konfigurationseditor
- Transformations-XML bearbeiten
- In einer Datei im Dateisystem
speichern
In TRIRIGA Application Platform
- XML-Datei mit Transformationsformular
hochladen
Laufzeitumgebung - Gemäß Zeitplan
System
In TRIRIGA Application Platform
- Workflow löst eine angepasste Aufgabe für jede Transformation aus
- Variablen zusammenstellen
- JDBC-Verbindungseinstellungen abrufen
- XML zur Durchführung der Transformation an TDI-Server senden
Daten werden von ETL-Scripts aus Geschäftsobjekten extrahiert, einschließlich des
Geschäftsobjekts "Finanzzusammenfassung", in das Finanzzusammenfassungsdatensätze aus Arbeitsblättern oder über kundendefinierte Schnittstellen mit einem
Finanzsystem importiert werden.
Vorausgesetzte Konfiguration für die ETL-Integration
In TRIRIGA Application Platform werden die Transformationen mithilfe eines Geschäftsobjekts und eines Formulars verwaltet. Zum Erstellen der Transformation
müssen die Quellentabellen und die Zielfakttabelle definiert und die Zuordnungen
verstanden werden.
Für jede Fakttabelle, die über eine Transformation geladen wird, gibt es einen Datensatz. Ein binäres Feld im Transformationsgeschäftsobjekt extrahiert die XMLKapitel 2. Datenstrukturen
15
Transformationsdatei in den Content Manager. Mithilfe des Formulars kann die
XML-Datei hochgeladen und heruntergeladen werden, sodass die TransformationsXML ohne großen Aufwand verwaltet werden kann. TRIRIGA ist mit einem ETLJobelement als Implementierung dieses Geschäftsobjekts bzw. Formulars vorkonfiguriert.
In TRIRIGA Application Platform wird ein Workflow nach einem Zeitplan ausgeführt. Der Workflow ruft für jede Fakttabelle eine angepasste Workflowaufgabe
auf, die geladen oder aktualisiert werden muss. Der Jobplaner ist ein Mechanismus, der die angepasste Workflowaufgabe für ETL-Jobelemente automatisch aufruft.
Im Lieferumfang von TRIRIGA sind alle Geschäftsobjekte, Formulare und Workflows enthalten, die für die Unterstützung der mitgelieferten Produkte TRIRIGA
Workplace Performance Management und TRIRIGA Real Estate Environmental
Sustainability erforderlich sind.
ETL-Transformationen definieren und verwalten
Verwenden Sie eine ETL-Entwicklungsumgebung, um eine Transformation zum
Verschieben von Daten zu erstellen. Während der Transformation können Sie Berechnungen vornehmen und Variablen aus TRIRIGA Application Platform und aus
dem System verwenden.
ETL-Prozesse mit Pentaho Spoon verwenden
Sie können Pentaho Spoon als ETL-Entwicklungsumgebung verwenden.
Übersicht über die Verwendung von Pentaho Spoon:
Zunächst müssen Sie die Quellen- und Zieltabellen sowie die entsprechenden Zuordnungen erstellen. Als Nächstes müssen Sie feststellen, welche Variablen an die
Transformation übergeben werden müssen. Fügen Sie dann diese Variablen zum
Geschäftsobjekt oder Formular für die Transformation hinzu. Nun können Sie
Pentaho Spoon und die folgenden Schritte verwenden, um Transformationen zu
definieren und zu verwalten.
Tipp: Möglicherweise müssen Sie nicht jeden der im Folgenden genannten Schritte
ausführen. Welche Schritte notwendig sind, hängt davon ab, ob Sie eine Transformation definieren oder verwalten.
v Führen Sie die Datei spoon.bat oder kettle.exe aus, indem Sie Spoon öffnen.
Wählen Sie No Repository aus, denn Sie müssen kein Repository verwenden.
v Öffnen Sie eine vorhandene XML-Datei, die mit dem Transformationsformular
(Transform Form) in das Dateisystem heruntergeladen wurde, oder wählen Sie
File > New > Transformation aus, um eine neue Transformation zu erstellen.
v Definieren Sie die JNDI-Einstellungen für die lokale Datenbank. Verwenden Sie
TRIRIGA als Verbindungsnamen. Wählen Sie View > Database Connections >
New aus, um die Datenbankverbindung im Tool zu definieren. Wenn die Transformation vom Workflow ausgeführt wird, wird die Verbindung mit den Verbindungsdaten des Anwendungsservers überschrieben.
v Verwenden Sie wie folgt das Menü Design, um die Transformation zu gestalten:
– Extrahieren Sie Zeilen aus den Tabellen. Wählen Sie dazu Design > Input >
Table Input aus.
– Stellen Sie sicher, dass alle Zeilenfelder einen Wert enthalten, wenn Sie in einer Berechnung verwendet werden. Wählen Sie dazu Design > Transform >
Value Mapper aus.
16
© Copyright IBM Corp. 2011, 2016
– Verwenden Sie Design > Transform > Calculator für Berechnungen.
– Geben Sie die Reihenfolgeplanung für die Zielzeilen an. Wählen Sie Design >
Lookup > Call DB Procedure aus und verwenden Sie die gespeicherte Datenbankprozedur NEXTVAL.
– Wählen Sie Scripting > Modified JavaScript Value sowie nach Bedarf weitere
Schritte aus, um die Daten wie gewünscht zu transformieren.
– Geben Sie die Tabelle an, in die die Zeilen ausgegeben werden. Wählen Sie
dazu Design > Output > Table Output aus.
– Ordnen Sie die Felder mit "Generated Mappings against Target Step" zu.
v Verlinken Sie die Schritte. Wählen Sie dazu View > Hops aus und gestalten Sie
die Transformation Schritt für Schritt.
v Führen Sie mit execute und anderen verfügbaren Dienstprogrammen gründliche
Tests durch, um sicherzustellen, dass der Prozess präzise ist und die erwarteten
Zeilen entsprechend zurückgegeben und transformiert werden.
v Speichern Sie die Transformation. Wählen Sie dazu File > Save aus. Speichern
Sie sie nicht im Repository. Geben Sie stattdessen XML als Dateityp an und verwenden Sie die Dateierweiterung .ktr. Wenn Sie den Dateityp nicht angeben,
wird die Transformation standardmäßig als Kettle-Transformation gespeichert, d.
h. als Datei mit der Erweiterung .ktr.
Pentaho Spoon installieren:
Sie können Pentaho Spoon als ETL-Entwicklungsumgebung installieren. Verwenden Sie Version 3.1, die in TRIRIGA integriert werden kann.
Vorgehensweise
1. Sie finden Pentaho Spoon Version 3.1 unter http://sourceforge.net/projects/
pentaho/files/Data%20Integration/3.1.0-stable/pdi-open-3.1.0-826.zip.
2. Extrahieren Sie die Dateien aus der .zip-Datei und behalten Sie die Verzeichnisstrukturen bei.
3. Machen Sie sich mit der neuesten Version von Pentaho Spoon und der zugehörigen ausführlichen Dokumentation unter http://kettle.pentaho.org/ vertraut.
Lokale JNDI konfigurieren:
Sie müssen die lokalen JNDI-Einstellungen für Ihre Datenbank definieren, indem
Sie die Eigenschaftendatei aktualisieren.
Vorgehensweise
1. Bearbeiten Sie die Datei jdbc.properties im Verzeichnis pdi-open-3.1.0-826/
simple-jndi und fügen Sie die folgenden Eigenschaften hinzu:
v LocalJNDI/type=javax.sql.DataSource
v LocalJNDI/driver=oracle.jdbc.driver.OracleDriver
v LocalJNDI/url=jdbc:oracle:thin:@localhost:1521:orcl
v LocalJNDI/user=tridata2
v LocalJNDI/password=tridata2
2. Aktualisieren Sie die Informationen entsprechend, einschließlich des Treibers,
wenn Sie DB2 oder SQL Server verwenden.
3. Speichern und schließen Sie die Datei.
Kapitel 2. Datenstrukturen
17
Transformationen und Datenbankverbindungen erstellen:
Sie können Transformationen und Datenbankverbindungen zwischen Pentaho
Spoon und TRIRIGA erstellen.
Vorgehensweise
1. Führen Sie die Datei spoon.bat im Verzeichnis pdi-open-3.1.0-826 aus, indem
Sie das Tool "Spoon" öffnen. Wählen Sie die Option für die Ausführung ohne
Repository aus.
2. Zum Erstellen einer neuen Transformation klicken Sie mit der rechten Maustaste auf Transformations und wählen Sie dann New aus.
3. Erstellen Sie im Modus View Ihre Datenbankverbindung. Klicken Sie unter
Transformations mit der rechten Maustaste auf "Database Connections" und
wählen Sie dann New aus.
4. Die angepasste Workflowaufgabe ersetzt die TRIRIGA-Verbindung durch die
JNDI-Einstellungen des Anwendungsservers. Konfigurieren Sie die Datenbankverbindung wie folgt:
v Verbindungsname: TRIRIGA
v Verbindungstyp: Oracle
v Zugriff: JNDI
v Einstellungen: JNDI Name:LocalJNDI
5. Wählen Sie Test aus, um sicherzustellen, dass die Verbindung ordnungsgemäß
konfiguriert ist.
6. Speichern Sie die Datenbankverbindungsdetails.
7. Sie müssen die Transformation als XML-Datei speichern und nicht im Repository. Die Erweiterung für die Kettle-Transformation ist .ktr. Standardmäßig wird
die Datei bei einer Kettle-Transformation als Datei mit der Erweiterung .ktr
gespeichert.
Transformation über Pentaho Spoon ausführen:
Sie können eine Transformation ausführen, die bereits fertiggestellt ist oder gerade
fertiggestellt wird.
Vorgehensweise
1. Speichern Sie die Transformation und wählen Sie Run aus.
2. Setzen Sie bei Bedarf Variablen.
3. Wählen Sie Preview aus, um die Änderungen am Eingabedatenstrom während
der Ausführung jedes einzelnen Schritts anzuzeigen.
Spoon-Schritte auswählen:
Im Designmodus können Sie die verschiedenen Spoon-Schritttypen auswählen und
zu einer Transformation hinzufügen.
Vorgehensweise
1. Wenn Sie einen Schritt zu einer Transformation hinzufügen möchten, wählen
Sie Step type aus und ziehen Sie den Schritt vom linken Navigationsbereich in
Ihre Palette.
2. Sie können zwei Schritte verlinken, indem Sie links im Navigationsbereich
View auswählen und doppelt auf Hops klicken.
18
© Copyright IBM Corp. 2011, 2016
3. Geben Sie in den Feldern für den Ausgangs- und den Zielschritt (From und To)
Werte ein und klicken Sie auf OK.
4. Alternativ können Sie die Steuertaste gedrückt halten und mit der Maus auf
zwei Schritte klicken. Klicken Sie dann mit der rechten Maustaste auf einen der
Schritte und wählen Sie New hop aus.
5. Wenn Sie einen Hinweis zur Transformation hinzufügen möchten, klicken Sie
mit der rechten Maustaste auf die Palette und wählen Sie New Note aus.
Spoon-Beispieltransformation:
Sie können eine Kopie jedes vorhandenen .ktr-Scripts in einem vorhandenen ETLJobelement herunterladen, um sich die Schrittbeschreibungen anzusehen. Nachfolgend sehen Sie ein Beispiel für eine Spoon-Transformation.
Die meisten mitgelieferten ETL-Prozesse haben denselben Ablauf wie das Beispiel,
unterscheiden sich jedoch hinsichtlich bestimmter Aspekte, z. B. hinsichtlich der
Datenbanktabellen, aus denen Daten extrahiert werden, oder hinsichtlich der Art
der Datentransformation.
Die Beispieltransformation ist wie folgt gegliedert:
v Eingabezeilen werden mit einer Pull-Operation aus der Organisation T_TRIORGANIZATIONALLOCATION und der Fläche T_TRISPACE mit org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID extrahiert.
v Mit IBS_SPEC.UPDATED_DATE werden die ausgewählten Zeilen begrenzt. Es
wird der vom Transformationsgeschäftsobjekt übergebene Datumsbereich verwendet.
v Mit dem Value Mapper wird sichergestellt, dass alle Zeilen von space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNU und org.TRIALLOCPERCENTNU einen Wert enthalten. Ein fehlender Wert wird auf null gesetzt.
v Mit dem Calculator wird TRIFACTTOTALWORKERSASS auf (space.TRIHEADCOUNTNU + space.TRIHEADCOUNTOTHERNU) * org.TRIALLOCPERCENTNU gesetzt.
v Mit dem Schritt "Get Variables" werden die vom Transformationsgeschäftsobjekt
übergebenen Variablen TRICREATEDBYTX und TRIRUNDA abgerufen.
v Mit dem Schritt "Add Constant" werden der Folgenname und das Inkrement
festgelegt, sodass diese Angaben im Eingabedatenstrom für die Reihenfolgeplanung verfügbar sind.
v Mit der Datenbankprozedur NEXTVAL wird die SPEC_ID festgelegt. Konfigurieren Sie diesen Schritt für die Verwendung von fünf Threads, um die Leistung zu
verbessern.
v Mit einem JavaScript-Scripting-Schritt wird festgestellt, ob das Projekt im Zeitrahmen liegt oder nicht, und die Dauer des Projekts berechnet. Konfigurieren Sie
diesen Schritt für die Verwendung von drei Threads, um die Leistung zu verbessern.
v Die Felder werden T_TRISPACEALLOCFACTOID zugeordnet.
Nachfolgend sind wichtige Aspekte aufgeführt, die Sie beim Erstellen einer Transformation berücksichtigen müssen:
v Führen Sie nach jedem hinzugefügten Schritt einen Test durch, um sicherzustellen, dass Ihre Transformation wie gewünscht abläuft.
v Transformationen müssen defensiv entwickelt werden. Wenn Sie beispielsweise
Berechnungen ausgehend von bestimmten Feldern durchführen, müssen alle Zeilen einen Wert für diese Felder enthalten. In keiner Zeile darf eines dieser Felder
Kapitel 2. Datenstrukturen
19
leer sein. Andernfalls stürzt der Transformationsprozess ab. Stellen Sie mit dem
Value Mapper sicher, dass alle für eine Berechnung verwendeten Felder einen
Wert haben.
v Datumsangaben sind schwierig zu handhaben, weil die von TRIRIGA unterstützten Datenbanken im Datumsfeld Datum und Uhrzeit (DATE und TIME) angeben. Datumslösungen zeigen, wie Datumsbereiche in SQL gehandhabt werden.
v Stellen Sie sicher, dass JNDI-Einstellungen verwendet werden und dass Ihre
Transformationsdatenbank unabhängig ist. Dies gilt insbesondere, wenn Ihre Lösung auf mehreren Datenbankplattformen (DB2, Oracle und Microsoft SQL Server) ausgeführt werden muss.
v Alle Attribute des Transformationsgeschäftsobjekts werden als Variablen an die
Transformation gesendet. Von dieser Regel gibt es einige Ausnahmen. Attribute
vom Typ "Time" oder "System Variable" werden ignoriert. Sie können diese Variablen in Ihrer SQL verwenden oder mit einer Pull-Operation in den Eingabedatenstrom extrahieren. Verwenden Sie dazu "Get Variables" mit folgender Syntax:
${VariableName}. Hier steht "VariableName" für den Namen des Attributs.
v Die Transformation muss vollständig getestet und konfiguriert sein, bevor Sie im
Tabelleneingabeschritt Variablen verwenden. Die Tests für "JavaScript", "Table Input Preview" und "Table Mapping" stellen eine Herausforderung dar. Sie können
Variablen in der Transformation durch Auswahl von Edit > Set Environment
Variables oder auf der Seite Execute im Abschnitt Variable festlegen. Wenn Sie
Variablen verwenden, stehen mehr Testfunktionen von Spoon zur Verfügung.
v Testen Sie Ihre Verbindung, bevor Sie JNDI verwenden, eine Suche durchführen
oder eine Spoon-Transformation ausführen. Die JNDI-Verbindung muss getestet
werden, um potenzielle Leistungsprobleme von Spoon zu vermeiden.
v Ziehen Sie das Hinzufügen eines Index in Betracht. Ein Index kann der Schlüssel
zu einer guten Leistung sein, wenn die Vorgehensweise, mit der ETL-Prozesse
Daten aus den T-Tabellen extrahieren, von der Vorgehensweise der regulären
Anwendung abweicht.
Die vorgenannten Aspekte beziehen sich auf das Konfigurieren der Spoon-Schritte
für die Transformation. Angegeben sind die Hauptschritte, die von den mit TRIRIGA gelieferten Transformationen verwendet werden. In Spoon gibt es weitere
Schritttypen, die Sie für die Bearbeitung Ihrer Daten nutzen können. Verwenden
Sie diese Schritte nach Bedarf für Ihre Transformation.
Spoon-Eingabeschritte konfigurieren:
Mit Eingabeschritten können Sie Daten in die Transformation einbringen.
Informationen zu diesem Vorgang
Die Tabelleneingabe ist die Quelle für die meisten Ihrer Daten. Über die angegebene Datenbankverbindung können Sie SQL für die Extraktion von Daten aus Tabellen einrichten.
Vorgehensweise
1. Klicken Sie doppelt auf einen Tabelleneingabeschritt, um die Informationen für
den Schritt anzuzeigen.
2. Setzen Sie die Verbindung auf TRIRIGA oder die Quellendatenbank.
3. Geben Sie Ihre SQL in die SQL-Tabelle ein.
4. Klicken Sie auf OK, um die Tabelleneingabe zu speichern.
20
© Copyright IBM Corp. 2011, 2016
5. Wählen Sie Preview aus, um eine Vorschau der Daten der Tabelleneingabe anzuzeigen. Wenn Sie in SQL Variablen verwenden, müssen diese definiert sein,
damit die Vorschau (Preview) funktioniert. Sie müssen die Variablenwerte beim
Testen fest codieren oder Edit > Set Environment Variables auswählen, um die
Variablenwerte festzulegen. Die Variablen in SQL sind $(triActiveStartDA_MinDATE} und ${triActiveEndDA_MaxDATE}.
Ergebnisse
Mit der bereitgestellten SQL werden Eingabezeilen von der Organisation T_TRIORGANIZATIONALLOCATION und der Fläche T_TRISPACE mit org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID extrahiert. Es werden Datumsangaben
vom Transformationsgeschäftsobjekt verwendet, um die einbezogenen Daten zu begrenzen.
Spoon-Transformationsschritte konfigurieren:
Über Transformationsschritte können Sie Eingabedaten ändern oder Informationen
zum Eingabedatenstrom hinzufügen.
Informationen zu diesem Vorgang
Für die Spoon-Beispieltransformation werden die Schritte Calculator, Add Constants und Value Mapper verwendet. Mit Spoon können Sie eine Sequenz hinzufügen, die jedoch datenbankabhängig ist und für SQL Server nicht funktioniert. Alternativ können Sie die verfügbare Datenbankprozedur (Schritt "DB Procedure")
verwenden.
Vorgehensweise
1. Stellen Sie mit dem Schritt Value Mapper sicher, dass die Felder Werte enthalten, oder legen Sie andere Feldwerte fest. Die Werte für ein Zielfeld können Sie
ausgehend von den Werten für ein Quellenfeld festlegen. Wenn das Zielfeld
nicht angegeben ist, wird anstelle des Zielfeldes das Quellenfeld festgelegt. Sie
müssen sicherstellen, dass alle an einer Berechnung beteiligten Felder einen
Wert enthalten. Wird während einer Berechnung ein Nullwert gefunden, schlägt
die Transformation fehl.
2. Wenn Sie doppelt auf den Value Mapper klicken, wird der Eingabedialog für
die erforderlichen Informationen geöffnet. In der Spoon-Beispieltransformation
wird in diesem Dialog ein Feld, das keinen Wert hat, auf null gesetzt.
3. Verwenden Sie den Schritt Add Constants, um Konstanten zum Eingabedatenstrom hinzuzufügen und die für die Datenbankprozedur NEXTVAL benötigten
Werte festzulegen.
4. Dieser Schritt ist für alle Transformationen erforderlich, die die Datenbankprozedur NEXTVAL verwenden. Setzen Sie SEQ_NAME auf SEQ_FACTSOID und
INCR auf 1.
5. Verwenden Sie den Schritt Calculator, um Felder auszuwählen und eine begrenzte Reihe von Berechnungen durchzuführen. Für den Schritt stehen einige
Funktionen zur Verfügung, die auf die Feldwerte angewendet werden. Die
Leistung des Calculator ist besser als die Leistung von JavaScript-ScriptingSchritten.
6. Die integrierten Berechnungen sind begrenzt. Wählen Sie die Spalte Calculation
aus, um die Liste der verfügbaren Funktionen anzuzeigen.
Kapitel 2. Datenstrukturen
21
Spoon-Suchschritte konfigurieren:
Mit Suchschritten können Sie zusätzliche Datenbankdaten in den Datenstrom extrahieren.
Informationen zu diesem Vorgang
Mit "Call DB Procedure" kann die Transformation eine Datenbankprozedur aufrufen. Die Informationen werden durch die Prozedur und zurück zur Transformation
transportiert. Sie können Folgen für die Fakttabelleneinträge erstellen.
Vorgehensweise
1. Konfigurieren Sie Ihren Datenbankprozeduraufruf so, dass er NEXTVAL verwendet, SEQ_NAME und INCR sendet und für die Ausgabe CURR_VALUE verwendet.
2. Bestimmen Sie, wie viele Instanzen dieses Suchschrittes ausgeführt werden sollen. Wenn Sie die Transformation testen, ist eine Ausführung dieses Schrittes
mit fünf Instanzen hinsichtlich der Leistung empfehlenswert. Für 30.000 Datensätze reduziert sich die Verarbeitungszeit beispielsweise von 90 Sekunden auf
30 Sekunden.
3. Ändern Sie die Anzahl der Threads, die einen Schritt ausführen, indem Sie mit
der rechten Maustaste auf den Schritt klicken und Change number of copies to
start auswählen.
4. Optimieren Sie die Anzahl der Threads, die den Schritt für die Datenbankprozedur ausführen.
Spoon-Jobschritte konfigurieren:
Auch wenn Sie keine Jobs erstellen, bei denen Sie Kettle-Variablen und -Felder für
den Eingabedatenstrom abrufen müssen, ist es notwendig, dass Sie ein Ausgabefeld für eine Variable festlegen können.
Informationen zu diesem Vorgang
Bei der Spoon-Beispieltransformation werden die Variablen triCreatedByTX und triRunDA in den Eingabedatenstrom eingebracht. Außerdem werden Variablen abgerufen, um die Variablen ONTIME und DURATION mit einer Pull-Operation extrahieren und während der JavaScript-Scripting-Schritte definieren zu können.
Vorgehensweise
Bei Ausführung der Transformation Zeitmarken zu verwenden ist wichtig, falls es
während der Transformation zu einem Fehler kommt. Im Beispiel wird zu diesem
Zweck die Variable triRunDA verwendet. Damit ist ein Rollback möglich, auch
wenn der Prozess dafür keine expliziten Schritte vorsieht. Wenn Sie in der Transformation Felder auf Werte setzen, müssen diese vom selben Typ sein. Andernfalls
schlägt die Transformation fehl.
Spoon-Scripting-Schritte konfigurieren:
Mit Scripting-Schritten können Sie JavaScript-Features implementieren.
22
© Copyright IBM Corp. 2011, 2016
Informationen zu diesem Vorgang
Mit diesen Schritten können Sie die Eingabedatenstromdaten auf eine Art bearbeiten, die mit dem Calculator nicht möglich ist. Sie können die Dauer berechnen
oder Werte im Datenstrom festlegen, der auf anderen Werten mit einer if/then/
else-Klausel basiert. Im Transformationsdatenstrom können Sie Werte festlegen,
die Konstanten sind oder von einer Variablen stammen.
Vorgehensweise
1. Wenn Sie zum Festlegen der Werte Logik benötigen, verwenden Sie das JavaScript-Scripting.
2. In der Spoon-Beispieltransformation wird die Dauer durch die Subtraktion
zweier Datumsangaben berechnet. Anhand der Dauer kann dann festgestellt
werden, ob der Plan im Zeitrahmen liegt.
3. Wenn Sie Informationen aus den Tabelleneingabezeilen benötigen, müssen Sie
mit den Scripting-Features von JavaScript iterieren, um das gewünschte Feld zu
finden. Ein direkter Zugriff auf das Feld ist nur möglich, wenn Sie im Schritt
"Table Input" einen Alias für das Feld angegeben haben.
Beispiel
Das JavaScript-Scripting-Beispiel zeigt detailliert, wie die Variablen abgerufen und
festgelegt werden.
var
var
var
var
var
var
var
actualEnd;
actualStart;
plannedEnd;
plannedStart;
duration;
valueDuration;
valueOnTime;
// In einer Schleife die Zeile des Eingabedatenstroms durchgehen
// und die gewünschten Felder abrufen
for (var i=0;i<row.size();i++) {
var value=row.getValue(i);
// Wert des Feldes als Zahl abrufen
if (value.getName().equals("TRIACTUALENDDA")) {
actualEnd = value.getNumber();
}
if (value.getName().equals("TRIACTUALSTARTDA")) {
actualStart = value.getNumber();
}
if (value.getName().equals("TRIPLANNEDENDDA")) {
plannedEnd = value.getNumber();
}
if (value.getName().equals("TRIPLANNEDSTARTDA")) {
plannedStart = value.getNumber();
}
// Diese ’Variablen’ im Datenstrom sollen mit der Dauer
// und der Einstellung für Termintreue aktualisiert werden.
// Daher wird nicht der Wert der Variablen benötigt, sondern
// die Werteklasse.
if (value.getName().equals("DURATION")) {
valueDuration = value;
}
if (value.getName().equals("ONTIME")) {
valueOnTime = value;
}
}
Kapitel 2. Datenstrukturen
23
// Berechnung der Dauer in Tagen
duration = Math.round((actualEnd - actualStart) / (60*60*24*1000));
// Berechnung der Dauer in Stunden
// duration = (actualEnd - actualStart) / (60*60*1000);
// Dauer in der ’Variablen’ in der Zeile festlegen
valueDuration.setValue(duration);
// Termintreue feststellen und Wert in der ’Variablen’ im
// Zeilendatenstrom festlegen
if ((actualEnd == null) || (plannedEnd == null))
valueOnTime.setValue("");
else if (actualEnd > plannedEnd)
valueOnTime.setValue("no");
else
valueOnTime.setValue("yes");
Wählen Sie Test Script aus, um sicherzustellen, dass das JavaScript kompiliert
wird. Die Schritte Test Script und Preview, die zu "Table Input" gehören, können
nur definierte Variablen bearbeiten. Wenn Sie Variablen in der Transformation festlegen möchten, wählen Sie Edit > Set Environment Variables aus. So können Sie
mehr von der Testfunktion in Pentaho Spoon profitieren.
Sie können beispielsweise Edit > Set Environment Variables auswählen und triActiveStartDA_MinDATE auf to_date(‘20061201’, ‘YYYYmmdd’) setzen.
Wenn Sie beim Definieren Ihrer Abfrage Aliasnamen für Spalten verwenden, müssen Sie beim Durchsuchen der Spalte mit getName denselben Aliasnamen verwenden.
Das folgende Beispiel zeigt die Option SELECT im Tabelleneingabeschritt:
SELECT mainProject.triProjectCalcEndDA ActualEndDate,
mainProject.triProjectActualStartDA ActualStartDate
Wenn Sie nach dem Wert für ActualEndDate suchen, verwenden Sie wie folgt den
Aliasnamen und nicht den Spaltennamen der Datenbank:
if (value.getName().equals("ActualEndDate")) {
actualEnd = value.getNumber();
}
Spoon-Ausgabeschritte konfigurieren:
Mit Ausgabeschritten können Sie Daten zurück in die Datenbank schreiben.
Informationen zu diesem Vorgang
Bei der Tabellenausgabe und der Zuordnung der Tabellenausgabe werden Informationen in einer Datenbank gespeichert, die dann in den Fakttabellen verwendet
werden. Wenn Sie über alle Informationen verfügen, um eine Transformation zu
speichern, können Sie am Ende Ihrer Transformation Ausgabeschritte hinzufügen
und diese mit dem letzten Schritt verbinden.
Vorgehensweise
1. Klicken Sie doppelt und fügen Sie die Verbindungsinformationen sowie die
Fakttabelle hinzu, die als Ausgabetabelle verwendet werden soll.
2. Wenn der Tabellenausgabeschritt konfiguriert ist und die Schritte verbunden
sind, klicken Sie mit der rechten Maustaste auf den Tabellenausgabeschritt.
24
© Copyright IBM Corp. 2011, 2016
3. Wählen Sie Generate mapping against this target step aus.
4. Ordnen Sie die Quellenfelder den Zielfeldern in der Zieldatenbank zu und klicken Sie auf OK. Zu den Quellenfeldern gehören auch die zusätzlichen Felder,
die zum Eingabedatenstrom hinzugefügt wurden. Bevor Sie Variablen im Tabelleneingabeschritt verwenden, müssen Sie die Tabellenzuordnung festlegen.
5. Ziehen Sie den Zuordnungsschritt mit der Maus zwischen die beiden letzten
Schritte, um Ihre Transformation fertigzustellen.
6. Sollte es nötig sein, können Sie Felder des Zuordnungsschritts modifizieren
oder weitere Felder zum Zuordnungsschritt hinzufügen.
Transformation testen:
Sie können die Transformation nach dem Hinzufügen jedes einzelnen SpoonSchritts oder am Ende, nach Fertigstellung aller Spoon-Schritte, testen. Nach jedem
Schritt ausgeführte Tests vereinfachen das Debugging. Bevor Sie die Transformation testen können, müssen sie die Transformation zuerst speichern.
Informationen zu diesem Vorgang
Im Abschnitt "Variables" sind die Variablen, die in der Transformation verwendet
werden, detailliert aufgeführt. Wenn Sie die Transformation mit Spoon testen, können Sie Werte für diese Variablen festlegen. Wird die Transformation über TRIRIGA ausgeführt, bilden die Variablen einen Teil des Transformationsgeschäftsobjekts.
Setzen und speichern Sie die Werte, die im intelligenten Objekt definiert werden,
vor dem Aufruf der angepassten Workflowaufgabe.
Vorgehensweise
1. Setzen Sie die Variable triRunDA auf das Datum und die Uhrzeit der Workflowausführung. Es muss sich nicht um ein Attribut im Transformationsgeschäftsobjekt handeln. Es ist die Zahlendarstellung des Auführungsdatums und der
Ausführungszeit. triRunDA hat keine sechs Formate des Datums, weil der Wert
dynamisch von der angepassten Workflowaufgabe generiert wird. triRunDA
wird für die Festlegung des Erstellungsdatums der Faktzeile benötigt.
2. triCreatedByTX ist ein Attribut im Transformationsgeschäftsobjekt.
3. triActiveStartDA_MinDATE und triActiveEndDA_MaxDATE sind eingeschlossene Darstellungen von triActiveStartDA und triActiveEndDA. Wenn Sie während der Spoon-Tests Tests für Oracle oder DB2 ausführen, müssen Sie die Variablen mit to_date (‘gewünschtes Datum’, ‘Format’) einschließen.
4. Klicken Sie auf Launch, um die Transformation auszuführen. Wenn ein Schritt
einen Fehler enthält, wird der Schritt rot angezeigt und der Fehler wird in der
Protokolldatei gespeichert. Sie können über die Protokollseite auf die Protokolldatei zugreifen.
Datumslösung:
Es gibt mehrere Datumsvariablen, die Berechnungen und Vergleiche erfordern,
wenn sie von Pentaho Spoon verwendet werden. Die Datumslösung bietet diese
Berechnungen und Vergleiche.
Es gibt drei Fälle, in denen eine Datumslösung erforderlich ist:
1. Vergleich von zwei Daten. Mithilfe dieses Vergleichs wird bestimmt, ob ein Projekt im Terminplan liegt.
2. Dauer zwischen zwei Daten in Tagen berechnen. Im manchen Fällen wird diese
Berechnung verwendet, um die Dauer in Stunden zu berechnen.
Kapitel 2. Datenstrukturen
25
3. Datum, z. B. Änderungsdatum oder Verarbeitungsdatum, mit einem Datumsbereich, z. B. erster Tag des Monats und letzter Tag des Monats, zu vergleichen.
Die ersten beiden Fälle werden mithilfe von JavaScript-Scripting-Schritten gelöst.
Der dritte Fall wird mithilfe eines Datumsbereichs in der Tabelleneingabe gelöst.
Es gibt zwei Typen von Daten: Daten, die als Datum in der Datenbank gespeichert
werden, und Daten, die als Zahl in der Datenbank gespeichert werden.
Tipp: Alle TRIRIGA-Objekte speichern die Felder Datum und Datum und Uhrzeit
als Zahlen in der Datenbank. Wählen Sie ein als Zahl gespeichertes Feld für die Interaktion mit Geschäftsobjekttabellen aus. Wählen Sie ein als Datum gespeichertes
Feld für die Interaktion mit Systemplattformtabellenfeldern aus, die als Datum definiert sind.
Feld als Datum auswählen:
Sie können mit Systemplattformtabellenfeldern, die als Datum definiert sind, interagieren, indem Sie ein Feld als Datum auswählen.
Im folgenden Beispielcode wird IBS_SPEC.UPDATED_DATE als Datumsfeld verwendet,
um festzustellen, ob eine Zeile erforderlich ist. triActiveStartDA und
triActiveEndDA geben den Datumsbereich an. Diese Daten stammen aus den Feldern "triActiveStartDA" und "triActiveEndDA" im Transformationsgeschäftsobjekt.
Die Tabelle "IBS_SPEC" ist kein TRIRIGA-Objekt. Sie ist eine Systemplattformtabelle, die für die Überwachung von Objekten in TRIRIGA verwendet wird. Sie enthält
ein Feld, das sich jedes Mal ändert, wenn ein Objekt in TRIRIGA aktualisiert wird.
Bei diesem Feld handelt es sich um das Feld "UPDATED_DATE", das in der Datenbank ein Datumsfeld und kein Zahlenfeld ist.
Im folgenden Beispielcode werden ${triActiveStartDA_MinDATE} und
${triActiveEndDA_MaxDATE} verwendet. Diese eingeschlossenen Datumsfelder rufen
alle Datensätze von 12:00 Uhr am Startdatum bis 23:59 Uhr am Enddatum ab.
SELECT org.SPEC_ID ORG_SPEC_ID, org.TRIORGANIZATIONLOOKUOBJID,
space.CLASSIFIEDBYSPACESYSKEY, org.TRIALLOCPERCENTNU, org.TRIALLOCAREANU,
space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNU, spec.UPDATED_DATE
FROM T_TRIORGANIZATIONALLOCATION org, T_TRISPACE space, IBS_SPEC spec
WHERE org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID
and space.SPEC_ID = spec.SPEC_ID
and spec.UPDATED_DATE >= ${triActiveStartDA_MinDATE}
and spec.UPDATED_DATE <= ${triActiveEndDA_MaxDATE} order by UPDATED_DATE
In Oracle und DB2 wird ${triActiveStartDA_MinDATE} wie to_date (‘20070701
00:00:00’, ‘YYYYmmdd hh24:mi:ss’) und ${triActiveEndDA_MaxDATE} wie to_date
(‘20070731 23:59:59’, ‘YYYYmmdd hh24:mi:ss’) angezeigt.
In SQL Server sehen diese Daten aufgrund der Datenbankspezifikationen geringfügig anders aus, sind aber so konfiguriert, dass alle Zeilen zwischen den beiden Daten erfasst werden.
Feld als Zahl auswählen:
Sie können mit Geschäftsobjekttabellen interagieren, indem Sie ein Feld als Zahl
auswählen.
26
© Copyright IBM Corp. 2011, 2016
Anstatt IBS_SPEC.UPDATED_DATE als Datumsbestimmungsfeld für das TRIRIGA-Datum zu verwenden, vergleicht diese Methode das Bestimmungsfeld direkt mit triActiveStartDA und triActiveEndDA, da es sich bei allen Feldern in der Datenbank
um Zahlen handelt.
Im folgenden Beispielcode wird triCaptureDA als Feld in T_TRISPACE verwendet.
SELECT org.SPEC_ID ORG_SPEC_ID, org.TRIORGANIZATIONLOOKUOBJID,
space.CLASSIFIEDBYSPACESYSKEY, org.TRIALLOCPERCENTNU, org.TRIALLOCAREANU,
space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNU, space.TRICAPTUREDA
FROM T_TRIORGANIZATIONALLOCATION org, T_TRISPACE space, IBS_SPEC spec
WHERE org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID
and space.TRICAPTUREDA >= ${triActiveStartDA_Min}
and space.TRICAPTUREDA <= ${triActiveEndDA_Max} order by space.TRICAPTUREDA
Verwenden Sie ähnlich wie bei Datumsfeldern die Variablen Min und Max, um sicherzustellen, dass die Startzeit 00:00:00 und die Endzeit 23:59:59 ist. Verwenden
Sie diese Variablen beispielsweise, damit bei der Suche ein Datensatz am 31. Dezember um 13:54 Uhr ausgewählt wird.
Datumsvariablen:
Das System erstellt für jedes Attribut des Typs "Date" und "Date and Time" im Geschäftsobjekt für die Fakttransformation sechs Kettle-Variablen.
Die folgende Tabelle enthält eine Zusammenfassung dieser Kettle-Variablen:
Tabelle 3. Kettle-Variablen
Kettle-Variable
Beschreibung
${triActiveStartDA}
Kein Suffix = Der Wert in Millisekunden seit
dem 1. Januar 2014 ohne Änderungen an der
Zeit. Diese Variable ist für Felder bestimmt,
die als Zahl dargestellt werden.
${triActiveStartDA_Min}
Min = Der Wert in Millisekunden seit dem 1.
Januar 2014 mit dem Zeitwert 00:00:00 für
das angegebene Datum. Diese Variable ist
für Felder bestimmt, die als Zahl dargestellt
werden.
${triActiveStartDA_Max}
Max = Der Wert in Millisekunden seit dem
1. Januar 2014 mit dem Zeitwert 23:59:59 für
das angegebene Datum. Diese Variable ist
für Felder bestimmt, die als Zahl dargestellt
werden.
${triActiveStartDA_DATE}
DATE = Der eingeschlossene Wert im
Datumsformat ohne Änderungen an der
Zeit. Diese Variable ist für Felder bestimmt,
die in der Datenbank als Datum dargestellt
werden.
Für Oracle und DB2 wird der Wert eingeschlossen und wie folgt angezeigt: to_date
(‘20070615 22:45:10’,’YYYYmmdd h24:mi:ss’)
Für SQL Server wird der Wert wie folgt angezeigt: ‘20070615 22:45:10’
${triActiveStartDA_MinDATE}
MinDATE = Der eingeschlossene Wert im
Datumsformat mit dem Zeitwert 00:00:00.
Diese Variable ist für Felder bestimmt, die in
der Datenbank als Datum dargestellt werden.
Kapitel 2. Datenstrukturen
27
Tabelle 3. Kettle-Variablen (Forts.)
Kettle-Variable
Beschreibung
${triActiveStartDA_MaxDATE}
MaxDATE = Der eingeschlossene Wert im
Datumsformat mit dem Zeitwert 23:59:59.
Diese Variable ist für Felder bestimmt, die in
der Datenbank als Datum dargestellt werden.
Wenn Sie die Variablen "${triActiveStartDA_Min}" und "${triActiveStartDA_Max}"
angeben, um einen Zeitraum zwischen zwei Daten zu sehen, müssen Sie alle Zeilen innerhalb des Zeitraums erfassen. Sie müssen um 00:00 Uhr beginnen und 1 Sekunde vor 00:00 Uhr aufhören. Wenn Sie nur den Datumswert verwenden, werden
je nach Zeit in der Variablen möglicherweise nicht alle gewünschten Zeilen abgerufen. Sie müssen die Minuten und Sekunden angeben, weil beide TRIRIGA-Datenbanken Daten in einem Datums-/Uhrzeitfeld oder in einem Zahlenfeld speichern.
Die Variablen ${triActiveStartDA_MinDATE} und ${triActiveStartDA_MaxDATE}
sind bei Datumsvergleichen hilfreich.
Beispiel für triActiveStartDA mit dem Wert 20070615 22:45:10:
triActiveStartDA_MinDATE =
(Oracle) to_date('20070615 00:00:00','YYYYmmdd h24:mi:ss')
(SQL Server) '20070615 00:00:00'
triActiveStartDA_MaxDATE =
(Oracle) to_date('20070615 23:59:59','YYYYmmdd h24:mi:ss')
(SQL Server) '20070615 23:59:59'
ETL-Scripts von Kettle in TRIRIGA verlagern:
Sobald die Transformation fertiggestellt und getestet ist, muss sie in das ETL-Jobelement von TRIRIGA hochgeladen werden.
Hinweis: Speichern Sie die Transformation mit dem Dateityp XML und der Erweiterung .ktr.
Die folgende Abbildung zeigt den Datenfluss zwischen der ETL-Umgebung und
TRIRIGA.
28
© Copyright IBM Corp. 2011, 2016
Für das Management der
Transformationen definiertes
TRIRIGA Application PlatformGeschäftsobjekt/Formular
ETL-Entwicklungsumgebung
generiert Transformations-XML
XML speichern
XML öffnen
Hochladen
Herunterladen
Content
Manager
XML-Datei
für
Dateisystem
Datenbank
Content
Manager
TRIRIGA Application PlatformWorkflow ruft gemäß dem
Zeitplan eine angepasste Aufgabe
für die Ausführung der
Transformationen auf
An Kettle übergebene Variablen:
Alle an Kettle übergebenen Variablen sind Zeichenfolgen, d. h., sie haben den Datentyp "String". Variablen des Datentyps "Number" (Zahl) werden von der angepassten Workflowaufgabe in den Typ "String" konvertiert. Kettle unterstützt die
folgenden TRIRIGA-Feldtypen: Textfelder (Text), boolesche Felder (Boolean), Datumsfelder (Date), Datum/Uhrzeit-Felder (Date and Time), Locatorfelder (Locator)
und Zahlenfelder (Number).
Tabelle 4. Die folgenden Felder sind Beispielfelder für das ETL-Jobelement:
Feldname
Feldbezeichnung
Feldtyp
triActiveEndDA
Aktives Enddatum
Date
triActiveStartDA
Aktives Startdatum
Date
triBONamesTX
Geschäftsobjektnamen
Text
triControlNumberCN
Kontrollnummer
Kontrollnummer (Number)
triCreatedByTX
Erstellt von
Text
triLocator
triLocator
Text
triModuleNamesTX
Modulnamen
Text
triNameTX
Name
Text
triTransformBI
Datei umwandeln
Binary
Tabelle 5. Folgende Variablen werden an Kettle übergeben:
An Kettle übergebene Variable
Beschreibung
triNameTX
(Text)
triActiveStartDA
(Number) Datum in Millisekunden seit dem
1. Januar 2014
triActiveStartDA_DATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe gemäß der Angabe im Attribut
Kapitel 2. Datenstrukturen
29
Tabelle 5. Folgende Variablen werden an Kettle übergeben: (Forts.)
An Kettle übergebene Variable
Beschreibung
triActiveStartDA_MinDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 00:00:00
triActiveStartDA_MaxDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 23:59:59
triActiveStartDA_Min
(Number) Datum in Millisekunden seit dem
1. Januar 2014; Zeitangabe ist 00:00:00
triActiveStartDA_Max
(Number) Datum in Millisekunden seit dem
1. Januar 2014; Zeitangabe ist 23:59:59
triActiveEndDA
(Number) Datum in Millisekunden seit dem
1. Januar 2014
triActiveEndDA_DATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe gemäß der Angabe im Attribut
triActiveEndDA_MinDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 00:00:00
triActiveEndDA_MaxDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 23:59:59
triActiveEndDA_Min
(Number) Datum in Millisekunden seit dem
1. Januar 2014; Zeitangabe ist 00:00:00
triActiveEndDA_Max
(Number) Datum in Millisekunden seit dem
1. Januar 2014; Zeitangabe ist 23:59:59
triActiveEndDA
(Number) Datum in Millisekunden seit dem
1. Januar 2014
triCreatedByTX
(Text)
triRunDATE
(Number) Von der angepassten
Workflowaufgabe festgelegtes
Ausführungsdatum
triLocator
(Text – Locator) Locatorfeld mit einem Verweis auf ein anderes Geschäftsobjekt. Diese
Variable enthält den Textwert des Feldes für
diesen Datensatz.
triLocator_IBS_SPEC
(Text - Locator) Enthält die spec_id des
Datensatzes im Feld triLocator. Anhand dieser spec_id können Sie in anderen
Datenbanktabellen nach zugehörigen Informationen zu diesem Datensatz suchen.
triControlNumberCN und triTransformBI werden nicht an Kettle übergeben.
Wichtig: Beachten Sie die folgenden Hinweise zu Variablen:
v Für jedes Datumsfeld und jedes Feld Datum/Uhrzeit-Feld gibt es sechs Variablen. TRIRIGA schließt den Wert ein und übergibt ihn in sechs verschiedenen Formaten an Kettle.
v In Kettle sind alle Variablen Zeichenfolgen (Typ "String"). Wenn eine Variable im
Script eine Zahl sein muss, müssen Sie eine Konvertierung durchführen. Sie können ein Zahlenfeld wie TRICREATEDDA beispielsweise mit einer Variablen wie
triRunDATE definieren. Kettle führt einige implizite Konvertierungen durch.
Wenn Sie jedoch Berechnungen mit einer Variablen ausführen möchten, müssen
Sie die Variable zuvor in eine Zahl konvertieren.
30
© Copyright IBM Corp. 2011, 2016
v Datumsangaben müssen richtig dargestellt werden. Sie können beispielsweise
nicht spec.UPDATED_DATE >= ${triCreatedDA} in Ihre Auswahl aufnehmen.
Mit spec.UPDATED_DATE wird ein Datum angegeben, und triCreatedDA ist
eine Zahl. Das Ergebnis wäre falsch, oder die Ausführung der SQL würde fehlschlagen.
v Kettle unterstützt die Übergabe der folgenden Attributtypen: Text, Boolean, Date,
Date and Time, Number. Alle anderen TRIRIGA-Datentypen (mit Ausnahme von
Locator) werden übersprungen.
v Für Locatorfelder werden zwei Variablen erstellt, eine für den Text des Locators
und die andere für die SPEC_ID des verlinkten Datensatzes. Mithilfe der SPEC_ID können Sie in anderen Datenbanktabellen nach zugehörigen Informationen
zu diesem Datensatz suchen.
ETL-Scripts in der Anwendung debuggen:
Zum Debuggen von ETL-Scripts in der Anwendung müssen Sie zuerst die Protokollierung konfigurieren und dann die angepasste Workflowaufgabe "RunETL"
auslösen, um die Protokollinformationen anzuzeigen.
Protokollierung konfigurieren:
TRIRIGA stellt Debugfunktionen bereit, wenn in der TRIRIGA-Anwendung ETLScripts ausgeführt werden.
Vorgehensweise
1. Wählen Sie in der Administratorkonsole das verwaltete Objekt "Platform Logging" aus. Wählen Sie dann die Option zum Aktivieren der ET-Protokollierung
aus.
2. Wählen Sie Category ETL > Transforms > Run Transform aus, um die Debugprotokollierung für den TRIRIGA-Plattformcode, der ETL-Jobelemente verarbeitet, zu aktivieren. Protokollnachrichten werden in der Datei "server.log" ausgegeben.
3. Wählen Sie Category ETL > Transforms > Kettle aus, um die Debugprotokollierung für die Kettle-Transformationen zu aktivieren. Protokollnachrichten werden in der Datei "server.log" ausgegeben.
4. Wenden Sie die Änderungen an. Wenn jetzt ein ETL-Script ausgeführt wird,
werden ETL-bezogene Informationen in das Serverprotokoll aufgenommen.
Wichtig: Da ein Protokoll ein immenses Informationsvolumen enthalten kann,
sollten Sie die Pentaho Spoon-Protokollierung nur für eine Ausführung des
ETL-Jobelements auf "Debug" setzen.
Debugging mit ETL-Jobs:
Nachdem Sie die Protokollierung konfiguriert haben, benötigen Sie einen Auslöser
für die angepasste Workflowaufgabe "RunETL", damit Sie Informationen in den
Protokollen sehen können.
Informationen zu diesem Vorgang
Wenn Sie das ETL-Jobelement verwenden, können Sie einfach in dem Formular auf
die Aktion Prozess ausführen klicken.
Kapitel 2. Datenstrukturen
31
Vorgehensweise
Vergessen Sie nicht, die vom ETL-Script erwarteten Feldwerte in das Formular einzutragen. Verwenden Sie die Aktion Prozess ausführen nur für Debugzwecke. In
der Produktion sollten Sie stattdessen den Jobplaner verwenden. Beachten Sie, dass
die Aktion "Prozess ausführen" Tabellen in der Datenbank aktualisiert. Aus diesem
Grund sollten Sie diese Aktion nicht in einer Produktionsumgebung verwenden.
Beispiel
Das folgende Beispiel zeigt eine Protokollausgabe:
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triCalendarPeriodTX_SPEC_ID} = 3103902
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triCalendarPeriodTX} = \Classifications\Calendar Period\2010
\Q4 - 2010\October - 2010
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) *** object
field found = BoFieldImpl[name=triEndDA,id=1044,Section=BoSectionImpl[name=General,
id=BoSectionId[categoryId=1,subCategoryId=1],Business Object=BoImpl
[name=triETLJobItem,
id=10011948,module=ModuleImpl[name=triJobItem,id=22322]]]]
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA_MinDATE} = to_date
(’20101031 00:00:00’,’YYYYmmdd hh24:mi:ss’)
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA_MaxDATE} = to_date
(’20101031 23:59:59’,’YYYYmmdd hh24:mi:ss’)
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA_DATE} = to_date(’20101031 00:00:00’,’YYYYmmdd h24:mi:ss’)
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA} = 1288508400000
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA_Min} = 1288508400000
2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.
ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettle
variable set - ${triEndDA_Max} = 1288594799000
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Remove Nulls (LEGALINTEREST_SPEC_ID)’.0
ended successfully, processed 3282 lines. ( 76 lines/s)
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Remove Nulls ( REALPROPERTYUSE_SPEC_ID)’.
0 ended successfully, processed 3282 lines. ( 76 lines/s)
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Remove Nulls ( REALPROPERTYTYPE_SPEC_ID)’.
0 ended successfully, processed 3282 lines. ( 76 lines/s)
32
© Copyright IBM Corp. 2011, 2016
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Filter rows’.0 ended successfully,
processed 3307 lines. ( 76 lines/s)
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Dummy (do nothing)’.0 ended successfully,
processed 25 lines. ( 0 lines/s)
2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:
38447392 IE=38447392) SpaceFact - Process Query for Space’.0 ended successfully,
processed 0 lines. ( 0 lines/s)
Tipps zur Leistungsoptimierung:
Nutzen Sie die folgenden Tipps, um die Leistung von ETL-Prozessen bei Verwendung von Spoon zu verbessern.
Zusammenfassung
1. Wenn Sie Ihre ETL-Prozesse so konfiguriert haben, dass die gewünschten Aktionen ausgeführt werden, führen Sie eine Basisleistungsmessung durch.
2. Führen Sie in Spoon den ETL-Prozess für eine Datenbank aus, bei der Sie tausende Zeilen zu Ihrer Fakttabelle hinzugefügt haben.
3. Vergewissern Sie sich, dass eine JNDI-Verbindung verwendet und Spoon in
dem Netz ausgeführt wird, in dem sich die Datenbank befindet, um eine Netzlatenz zu vermeiden. Führen Sie den Prozess nicht über ein virtuelles privates
Netz aus.
4. Rufen Sie eine vollständige Liste für die Ausführung ab, z. B. für die Ausführung des ETL-Prozesses "triSpacePeopleFact".
Analyse
1. Vom JavaScript-Schritt und vom Schritt für die Datenbankprozedur (Get Next
Spec ID) gibt es mehrere Kopien. Klicken Sie mit der rechten Maustaste auf den
Schritt und ändern Sie für den Anfang die Anzahl der Kopien.
v Wenn Sie für die Ausführung des obigen ETL-Beispielprozesses "triSpacePeopleFact" die Anzahl der Kopien für den JavaScript-Schritt und den Schritt für
die Datenbankprozedur (Get Next Spec ID) auf jeweils drei setzen, sieht dies
wie folgt aus:
v Ohne Änderung: 12.9, 12.7, 12.5, 12.6
v Jeweils drei Kopien: 11.4, 11.6, 12.3, 12.2
2. Ändern Sie die festgelegte Standardzeilenlänge von 1000 in 10000. Für neue
Transformationen wird diese Länge automatisch festgelegt. Klicken Sie mit der
rechten Maustaste auf den ETL-Prozess und öffnen Sie die Eigenschaften der
Transformation.
3. Analysieren Sie die Ausführung. Gibt es einen Engpass? Ist ein Schritt langsamer als die anderen? Möglicherweise kann ein besserer Durchsatz erzielt werden, wenn es von anderen Schritten mehrere Kopien gibt.
4. Ist der Dateneingabeschritt ein Engpass? Könnte ein Index für die Datenbank
helfen? Ist das der Fall, fügen Sie einen Index hinzu und wiederholen Sie die
Ausführung. Ist die Leistung jetzt besser? Vielleicht sollten Sie einen Filterschritt nutzen und nicht die Datenbank zum Herausfiltern der Ergebnismenge
verwenden.
5. Die Analyse ist ein iterativer Prozess. Verwenden Sie immer mehrere Kopien
des JavaScript-Schritts und des Schritts für die Datenbankprozedur (Get Next
Spec ID).
Kapitel 2. Datenstrukturen
33
6. Ein ETL-Prozess, der mit 300-800 Zeilen pro Sekunde ausgeführt wird, liegt definitiv im akzeptablen Leistungsbereich.
Für den ETL-Prozess "triSpacePeopleFact" wurden mit den Schritten 1 und 2 im
Vergleich zur ursprünglichen Entwicklung nennenswerte Verbesserungen erzielt.
Für den ETL-Prozess "triSpaceFact" wurden mit den Schritten 1, 2 und 4 erhebliche
Verbesserungen erreicht.
Nachfolgend sehen Sie den mit den Schritten 1 und 2 ausgeführten ETL-Prozess
"triSpacePeopleFact":
Query for Space People: Time = 11.6 sec; Speed (r/s) = 743.6
Nachfolgend sehen Sie den mit den Schritten 1 und 2 ausgeführten ETL-Prozess
"triSpaceFact":
Query for Space: Time = 313.9 sec; Speed (r/s) = 24.0
Wie Sie sehen, ist die Flächenabfrage (Query for Space) als Eingabeschritt mit 24
Zeilen pro Sekunde ein Engpass.
Im Gegensatz zur Flächenabfrage stellt die Abfrage der Personen pro Fläche (Query for Space People) keinen Engpass dar. Die Ausführung des ETL-Prozesses
triSpaceFact erreicht ohne über die Schritte 1 und 2 hinausgehende Modifikationen
eine gute Geschwindigkeit von mehr als 700 Zeilen pro Sekunde.
Wenn Sie sich zu Schritt 4 für den ETL-Prozess triSpaceFact die SQL für die Flächenabfrage ansehen, werden Sie feststellen, dass diese Summen (SUM) enthält.
Summen sind aufwendig. Dies gilt insbesondere, weil zwei Summen vorhanden
sind und keines der Felder indexiert ist.
Fügen Sie einen Index zu T_TRIORGANIZATIONALLOCATION.TRILOCATIONLOOKUPTXOBJID hinzu. Obwohl TRISTATUSCL in SELECT SUM WHERE enthalten ist, muss nur zu TRILOCATIONLOOKUPTXOBJID ein Index hinzugefügt werden. TRISTATUSCL ist ein Feld mit 1000 Zeichen, das den Index verlangsamen
und in SQL Server nicht funktionieren würde.
CREATE INDEX IDX01_TRIORGALLOC ON T_TRIORGANIZATIONALLOCATION
(TRILOCATIONLOOKUPTXOBJID) NOPARALLEL;
Führen Sie den ETL-Prozess erneut aus.
Nachfolgend sehen Sie den mit den Schritten 1, 2 und 4 ausgeführten ETL-Prozess
"triSpaceFact":
Query for Space: Time = 3.2 sec; Speed (r/s) = 2378.3
Beachten Sie die Änderung bei der Geschwindigkeit (Zeilen pro Sekunde) des Dateneingabeschritts (2378,3) und die Dauer der ETL-Ausführung (3,2 Sekunden für
7544 Zeilen).
Wichtig: Beachten Sie bei der Entwicklung Ihrer ETL-Prozesse Folgendes:
v Vermeiden Sie komplexe SQL und Aggregatfunktionen wie COUNT, MIN, MAX
und SUM. Wenn Sie diese Funktionen verwenden müssen, prüfen Sie, ob ein Index für den Dateneingabeschritt hilfreich ist. Erstellen Sie keinen Index für ein
Feld mit dem Datentyp "Large Varchar". SQL Server kann nur Indizes mit < 900
Bytes handhaben.
34
© Copyright IBM Corp. 2011, 2016
v Vermeiden Sie nach Möglichkeit OR und NOT sowie die Verwendung von Ansichten (M_TableName in TRIRIGA-Datenbanken).
v Verwenden Sie anstelle von JavaScript den Schritt "Calculator", sofern dies möglich ist. Der JavaScript-Schritt kann kostenintensiv sein.
v Verwenden Sie nur einen JavaScript-Scripting-Schritt.
ETL-Prozesse mit dem Konfigurationseditor von IBM Tivoli Directory Integrator verwenden
Der Konfigurationseditor von Tivoli Directory Integrator ist die ETL-Entwicklungsumgebung, die in Tivoli Directory Integrator enthalten ist. Im Konfigurationseditor
können Sie ETL-Transformationen erstellen, verwalten, testen und debuggen, die in
Tivoli Directory Integrator als Konfigurationsdateien bezeichnet werden. Der Konfigurationseditor basiert auf der Eclipse-Plattform, die eine Entwicklungsumgebung
bereitstellt, die umfassend und erweiterbar ist.
Vorbereitende Schritte
Systementwickler, die für die Definition und Verwaltung von Transformationen mit
dem Konfigurationseditor zuständig sind, müssen Zugriff auf und Erfahrung mit
der Verwendung von TRIRIGA-Datenbanken haben.
Bevor Sie ETL-Transformationen mit dem Konfigurationseditor von Tivoli Directory Integrator definieren und verwalten können, müssen Sie die folgenden Aufgaben ausführen:
v Quellen- und Zieltabellen erstellen
v Entsprechende Zuordnungen konfigurieren
v Variablen identifizieren, die an die Transformation übergeben müssen
v Variablen zum Transformationsobjekt oder -formular hinzufügen
Konfigurationseditor von Tivoli Directory Integrator installieren:
Obwohl der Laufzeitserver von Tivoli Directory Integrator automatisch mit TRIRIGA installiert wird, müssen Sie zum Erstellen oder Ändern von Tivoli Directory Integrator-Fertigungslinien den Konfigurationseditor auf der Workstation installieren,
die Sie für die ETL-Entwicklung verwenden.
Vorgehensweise
1. Laden Sie das entsprechende Tivoli Directory Integrator-Installationspaket von
Passport Advantage (http://www.ibm.com/software/howtobuy/
passportadvantage/pao_customers.htm) herunter und installieren Sie es.
Option
Bezeichnung
TDI711_TAP340_Install_Wind.zip
IBM Tivoli Directory Integrator Version 7.1.1
Installer for IBM TRIRIGA Application
Platform V3.4.0 on Windows Multilingual
TDI711_TAP340_Install_Linux.tar
IBM Tivoli Directory Integrator Version 7.1.1
Installer for IBM TRIRIGA Application
Platform Version 3.4.0 on Linux Multilingual
TDI711_TAP340_Install_SOLIntl.tar
IBM Tivoli Directory Integrator V7.1.1 Installer for IBM TRIRIGA Application Platform
V3.4.0 on Solaris Intel Multilingual
TDI711_TAP340_Install_SOLSprc.tar
IBM Tivoli Directory Integrator V7.1.1 Installer for IBM TRIRIGA Application Platform
V3.4.0 on Solaris Sparc Multilingual
Kapitel 2. Datenstrukturen
35
Option
Bezeichnung
TDI711_TAP340_Install_AIX.tar
IBM Tivoli Directory Integrator V7.1.1 Installer for IBM TRIRIGA Application Platform
V3.4.0 on AIX Multilingual
2. Führen Sie ein Update auf IBM Tivoli Directory Integrator V7.1.1 Fixpack 3
durch, das auf http://www.ibm.com/support/docview.wss?uid=swg27010509
verfügbar ist.
3. Wenden Sie das Paket "7.1.1-TIV-TDI-LA0014" an, das Sie beim IBM Support
anfordern können.
4. Kopieren Sie den JDBC-Treiber für den Datenbanktyp, zu dem Ihre Fertigungslinien eine Verbindung herstellen, aus dem TRIRIGA-Installationsverzeichnis in
das Tivoli Directory Integrator-Verzeichnis TDI-Installationsverzeichnis/jars.
v Für SQL Server kopieren Sie die Datei jtds-1.2.8.jar.
v Für Oracle kopieren Sie die Datei ojdbc6.jar.
v Für DB2 kopieren Sie die Datei db2jcc4.jar.
Von Tivoli Directory Integrator verwendete Ports ändern:
Sie geben die von Tivoli Directory Integrator verwendeten Ports während der Installation von TRIRIGA an. In seltenen Fällen müssen Sie diese Porteinstellungen
möglicherweise ändern.
Informationen zu diesem Vorgang
Zum Ändern des Ports, an dem TRIRIGA ETL-Transformationen zur Ausführung
an Tivoli Directory Integrator sendet, ändern Sie TDI_HTTP_SERVER_PORT in der Datei TRIRIGAWEB.properties.
Zum Ändern des vom Tivoli Directory Integrator-Agenten für die Verwaltung des
Tivoli Directory Integrator-Servers verwendeten Ports führen Sie die folgenden
Aufgaben aus:
v Ändern Sie TDI_SERVER_PORT in der Datei TRIRIGAWEB.properties.
v Ändern Sie api.remote.naming.port in der Datei TRIRIGAInstallationsverzeichnis/TDI_IE/TDISolDir/solution.properties.
Einführung in den Konfigurationseditor von Tivoli Directory Integrator:
Zum Definieren und Verwalten von ETL-Prozessen mit dem Konfigurationseditor
müssen Sie sich zuerst mit den grundlegenden Aufgaben wie dem Öffnen des
Konfigurationseditors, der Interpretation der Ansichten und der Erstellung eines
Projekts, einer Fertigungslinie, eines Hooks, eines Scripts oder eines Connectors
und dem Importieren einer Konfigurationsdatei vertraut machen.
Der Konfigurationseditor wird mit dem Wrapper-Script ibmditk gestartet. Dieses
Script befindet sich im Installationsverzeichnis von Tivoli Directory Integrator.
Wählen Sie einen Arbeitsbereichsordner aus, in dem Sie Ihre Projekte und Dateien
speichern möchten.
Im Arbeitsbereichsfenster des Konfigurationseditors werden die folgenden Ansichten angezeigt:
v Der Navigator (oben links) enthält alle Projekte und Quellendateien für Serverkonfigurationen und Tivoli Directory Integrator-Lösungen. Außerdem kann der
Navigator weitere Dateien und Projekte, wie z. B. Textdateien, enthalten. Der
36
© Copyright IBM Corp. 2011, 2016
Konfigurationseditor behandelt Tivoli Directory Integrator-Projekte auf besondere Weise, sodass andere Dateien und Projekte vom Konfigurationseditor nicht
beeinflusst werden.
v In der Serveransicht (unten links) werden die Status aller Server angezeigt, die
im Projekt TDI-Server definiert sind. Sie können eine unbegrenzte Anzahl an Servern definieren. Die Serveransicht bietet eine Reihe von Funktionen, die für Server und deren Konfigurationen ausgeführt werden können. Wenn Sie auf die
Schaltfläche Neuanzeige klicken, werden die Status aller Server in der Ansicht
aktualisiert.
v Im Editorbereich (oben rechts) öffnen Sie ein Dokument, wie z. B. eine Fertigungslinienkonfiguration, das Sie bearbeiten möchten. Dieser Bereich ist vertikal
geteilt und enthält einen Bereich mit verschiedenen Ansichten für weitere relevante Informationen. Zu den wichtigsten Ansichten gehören die Ansicht "Probleme", in der potenzielle Probleme mit einer Tivoli Directory Integrator-Komponente angezeigt werden, die Ansicht "Fehlerprotokoll", in der Fehler angezeigt
werden, die während der Entwicklung von Lösungen auftreten, und die Ansicht
"Konsole", in der das Konsolenprotokoll zur Ausführung von Tivoli Directory Integrator-Servern, wie beispielsweise den vom Konfigurationseditor gestarteten
Servern, angezeigt wird.
Zu den gängigen Aktivitäten gehören die folgenden Basisaufgaben:
v Zum Erstellen eines Projekts klicken Sie mit der rechten Maustaste auf Datei >
Neu > Projekt.
v Zum Erstellen einer Fertigungslinie wählen Sie ein Projekt im Navigator aus und
klicken dann mit der rechten Maustaste auf Datei > Neu > Fertigungslinie. Eine
Fertigungslinie ist eine Gruppe von Komponenten, die zum Verschieben und
Transformieren von Daten miteinander verbunden werden. Eine Fertigungslinie
beschreibt die Route, über die die Daten übergeben werden. Die über diese Route verarbeiteten Daten werden als Eintragsobjekt dargestellt. Die Fertigungslinie
arbeitet in jedem Zyklus mit nur jeweils einem einzigen Eintrag. Die Fertigungslinie ist die Arbeitseinheit in Tivoli Directory Integrator und stellt im Allgemeinen einen Informationsfluss von einer oder mehreren Datenquellen zu einem
oder mehreren Zielen dar. Sie müssen den Namen für die neue Fertigungslinie
beim Erstellen des ETL-Jobelements eingeben, das diese Fertigungslinie über
TRIRIGA ausführt.
v Zum Hinzufügen eines Hooks für die Fertigungslinie klicken Sie im Editorbereich auf Optionen > Hooks für Fertigungslinie. Wählen Sie das Kontrollkästchen neben einem der Hooks aus und klicken Sie dann auf Schließen. Nachdem
der Hook hinzugefügt wurde, können Sie ihn auswählen und JavaScript-Code
hinzufügen.
v Zum Hinzufügen eines Scripts wählen Sie im Editorbereich den Ordner Feed
oder den Ordner Data Flow aus. Klicken Sie mit der rechten Maustaste und wählen Sie Komponente hinzufügen aus. Wählen Sie den Scriptfilter aus, wählen
Sie dann eine Komponente aus und klicken Sie auf Fertigstellen. Wählen Sie das
Script aus, das Ihrer Fertigungslinie hinzugefügt wurde, und fügen Sie einen benutzerdefinierten Block mit JavaScript-Code hinzu.
v Zum Hinzufügen eines Connectors wählen Sie im Editorbereich den Ordner
Feed oder den Ordner Data Flow aus. Klicken Sie mit der rechten Maustaste und
wählen Sie Komponente hinzufügen aus. Wählen Sie den Connectorfilter aus,
wählen Sie dann eine Komponente aus und klicken Sie auf Fertigstellen. Wählen Sie den Connector aus, der Ihrer Fertigungslinie hinzugefügt wurde, und fügen Sie die erforderlichen Konfigurationsdaten hinzu.
v Zum Importieren einer Konfigurationsdatei klicken Sie auf Datei > Importieren
und wählen Sie dann IBM Tivoli Directory Integrator und Konfiguration aus.
Kapitel 2. Datenstrukturen
37
Klicken Sie auf Weiter, geben Sie eine Konfigurationsdatei an und klicken Sie
dann auf Fertigstellen. Wenn Sie zur Eingabe des Projektnamens aufgefordert
werden, geben Sie einen Namen ein und klicken Sie dann auf Fertigstellen.
Weitere Informationen zur Verwendung von Tivoli Directory Integrator finden Sie
im IBM Tivoli Directory Integrator Version 7.1.1 unter http://
publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_7.1.1/
welcome.htm.
Tivoli Directory Integrator-Agent:
Der Tivoli Directory Integrator-Agent ist die Schnittstelle zum Starten und Stoppen
des Tivoli Directory Integrator-Laufzeitservers über TRIRIGA.
Der geplante ETL-Prozess ist mit den folgenden Lizenzen verfügbar:
v Beliebige Lizenz für IBM TRIRIGA Workplace Performance Management
v Lizenz für IBM TRIRIGA Real Estate Environmental Sustainability Manager
v Lizenz für IBM TRIRIGA Real Estate Environmental Sustainability Impact Manager
v Lizenz für IBM TRIRIGA Workplace Reservation Manager
v Lizenz für IBM TRIRIGA Workplace Reservation Manager for Small Installations
Der Tivoli Directory Integrator-Server muss aktiv sein, damit die Tivoli Directory
Integrator-ETL-Jobelemente erfolgreich ausgeführt werden. ETL-Jobelemente schlagen fehl, wenn der Tivoli Directory Integrator-Server nicht aktiv ist, und es wird
ein Fehler im TRIRIGA-Serverprotokoll ausgegeben.
Zum Starten oder Stoppen des Tivoli Directory Integrator-Servers rufen Sie die Anzeige "Agent Manager" in der Administratorkonsole auf und starten oder stoppen
Sie dann den Tivoli Directory Integrator-Agenten. Sobald dieser Agent gestartet ist,
wird er nach einem festen Zeitplan ausgeführt und überwacht den Tivoli Directory
Integrator-Server. Wenn er festgestellt, dass der Tivoli Directory Integrator-Server
nicht aktiv ist, versucht er, den Server erneut zu starten.
Weitere Informationen zur Anzeige "Agent Manager" finden Sie in der Veröffentlichung IBM TRIRIGA Application Platform 3 Administratorkonsole Benutzerhandbuch.
Konfiguration des Tivoli Directory Integrator-Agenten:
Sie können Eigenschaften konfigurieren, um zu prüfen, ob der Tivoli Directory Integrator-Server aktiv ist.
Die Eigenschaft TDI_AGENT_SLEEPTIME für den Anwendungsserver, in dem der Tivoli Directory Integrator-Agent ausgeführt wird, steuert, wie oft der Agent prüft, ob
der Tivoli Directory Integrator-Server aktiv ist, und versucht, den Server erneut zu
starten.
Die Eigenschaft TDI_SERVER_TIMEOUT für den Anwendungsserver, in dem der Tivoli
Directory Integrator-Agent ausgeführt wird, steuert, wie lange auf die Ausführung
des Start- oder Stoppbefehls für den Tivoli Directory Integrator-Server gewartet
wird, bevor ein Fehler ausgelöst wird.
Diese Eigenschaften werden in der Datei TRIRIGAWEB.properties definiert.
38
© Copyright IBM Corp. 2011, 2016
Protokollierung für Tivoli Directory Integrator-Agenten:
Probleme mit dem Tivoli Directory Integrator-Agenten werden in der Datei
server.log protokolliert. Zum Erhalt zusätzlicher Informationen aktivieren Sie die
Debugprotokollierung im Tivoli Directory Integrator-Agenten, indem Sie die Plattformprotokollierungseinstellungen in der Administrationskonsole auf dem Server
ändern, auf dem der Agent ausgeführt wird.
Die Konfiguration der zusätzlichen Protokollierung kann durch Änderung der
log4j-Einstellungen auf dem Server, auf dem der Agent ausgeführt wird, vorgenommen werden.
Durch Verwendung der log4j-Standardkonventionen können Sie beispielsweise Probleme mit dem Tivoli Directory Integrator-Server überwachen. Wenn der Tivoli Directory Integrator-Agent den Tivoli Directory Integrator-Server nicht starten kann,
schreibt er einen Fehler in die folgende log4j-Kategorie: "com.tririga.platform.tdi.agent.TDIAgent.TDISTARTFAILED". Standardmäßig werden in diese Kategorie geschriebene Fehler im TRIRIGA-Serverprotokoll aufgezeichnet. Sie können ein anderes Verhalten konfigurieren, z. B. das Senden einer E-Mail-Benachrichtigung, indem
Sie diese Kategorie so konfigurieren, dass Informationen in einen anderen log4jAppender geschrieben werden.
Transformationen über den Konfigurationseditor von Tivoli Directory Integrator
ausführen:
Zum Ausführen einer Transformation, die sich im Entwicklungsstadium befindet
oder bereits fertiggestellt ist, speichern Sie die Transformation und klicken Sie
dann in der Symbolleiste auf Ausführen.
Informationen zu diesem Vorgang
Im Editorbereich wird ein neues Fenster oder eine neue Registerkarte geöffnet, die
denselben Namen hat wie die Fertigungslinie. In diesem Fenster werden die Ergebnisse der Ausführung der Fertigungslinie angezeigt. Sie können auch die Schaltfläche Debugger verwenden, um die Änderungen am Eingabedatenstrom während
der Ausführung jedes einzelnen Schritts anzuzeigen.
Beispieltransformation mit dem Konfigurationseditor von Tivoli Directory Integrator:
Im Folgenden sind Beispiele für einige Schritte in einer Tivoli Directory IntegratorTransformation beschrieben.
Sie können eine Kopie der XML-Konfigurationsdatei für "Staging-Tabelle für Zählerposition laden", die in einem vorhandenen ETL-Jobelement enthalten ist, herunterladen, um die Schrittbeschreibungen als Anleitung zu verwenden. Viele der mitgelieferten ETL-Prozesse haben denselben Ablauf, aber andere Aspekte, wie z. B.
die Datenbanktabellen, aus denen Daten extrahiert werden, und die Art und Weise,
in der Daten transformiert werden.
Die folgende Beispieltransformation führt die folgenden Schritte aus:
v Sie gibt die Protokollierungsparameter an, die von dieser Fertigungslinie verwendet werden, einschließlich Protokollfunktionstyp, Dateipfad, Appender, Datumsmuster, Layoutmuster, Protokollebene und die Einstellung für die Aktivierung oder Inaktivierung des Protokolls.
Kapitel 2. Datenstrukturen
39
v Sie baut unter Verwendung der für DB-TRIRIGA konfigurierten Verbindungsparameter für die Fertigungslinie eine Datenbankverbindung auf.
v Sie ruft den Parameter "Zeitverzögerung für Energieprotokoll" aus der Tabelle
mit den Einstellungen ab.
v Sie verwendet einen JDBC-Connector, um Datensätze aus der Stundenfakttabelle
für Assets abzurufen.
v Sie verwendet eine Eingabeattributzuordnung, um die Datenbankspalten internen Tivoli Directory Integrator-Arbeitseintragsattributen zuzuordnen.
v Sie verwendet Tivoli Directory Integrator-Hooks und -Scripts, um Datentransformationen durchzuführen.
v Sie verwendet einen JDBC-Connector, um Datensätze in der Staging-Tabelle für
Umweltzählerpositionen einzufügen oder zu aktualisieren.
v Sie verwendet eine Ausgabeattributzuordnung, um interne Arbeitsvariablen den
Datenbankspalten in der Tabelle zuzuordnen, die im JDBC-Ausgabeconnector
konfiguriert ist.
v Sie verwendet einen Hook des Typs "On Success" (Bei Erfolg), um die folgenden
Aufgaben auszuführen:
– Verarbeitungsstatistiken für die Ausführung protokollieren
– errCount und errMsg setzen
v Sie verwendet einen Tivoli Directory Integrator-Hook des Typs "On Failure" (Bei
Fehler), um die folgenden Aufgaben auszuführen:
– Fehlernachrichten protokollieren
– errCount und errMsg setzen
Die folgenden Abschnitte enthalten weitere Details zu den Schlüsselkomponenten
der Tivoli Directory Integrator-Transformation. Die Beschreibung konzentriert sich
auf die Hauptkomponenten, die von der mit TRIRIGA gelieferten Transformation
verwendet werden. Tivoli Directory Integrator stellt viele andere Komponenten bereit, die Sie je nach den Anforderungen für Ihre Transformation zur Bearbeitung Ihrer Daten verwenden können.
Verwenden Sie die folgenden Tipps für die Erstellung einer Transformation:
v Verwenden Sie die Testfeatures, die Ihnen beim Erstellen Ihrer Fertigungslinie
zur Verfügung stellen, um sicherzustellen, dass Ihre Transformation die gewünschten Aufgaben ausführt.
v Transformationen müssen defensiv entwickelt werden. Wenn Sie beispielsweise
Berechnungen ausgehend von bestimmten Feldern durchführen, müssen alle Zeilen einen Wert für diese Felder enthalten. In keiner Zeile darf eines dieser Felder
leer sein. Andernfalls stürzt der Transformationsprozess ab. Fügen Sie Prüflogik
hinzu, um sicherzustellen, dass alle Felder, die in einer Berechnung verwendet
werden, einen Wert haben.
v Suchen Sie nach nicht definierten Variablen, nach Variablen mit Nullwerten und
nach Rückgabefehlern, wenn die nicht definierten Variablen bzw. die Variablen
mit Nullwert erforderlich sind, damit die Fertigungslinie erfolgreich ausgeführt
werden kann. Wenn Ihre Fertigungslinie beispielsweise von den DB-OTHER-Variablen (z. B. jdbcOthUrl, jdbcOthDriver) abhängig ist, damit eine Verbindung zu
einer externen Datenbank aufgebaut werden kann, muss geprüft werden, ob diese Variablen definiert sind und den Fehlerfall entsprechend behandeln.
v Datumsangaben sind schwierig zu handhaben, weil alle Datenbanken, die von
TRIRIGA unterstützt werden, Datum und Uhrzeit (DATE and TIME) im Datumsfeld verwalten.
40
© Copyright IBM Corp. 2011, 2016
v Stellen Sie sicher, dass Fertigungslinienverbindungen verwendet werden und
dass Ihre Transformationsdatenbank unabhängig ist. Dies gilt insbesondere,
wenn Ihre Lösung auf mehreren Datenbankplattformen (DB2, Oracle und Microsoft SQL Server) ausgeführt werden muss.
v Testen Sie Ihre Fertigungslinienverbindungen, bevor Sie die Tivoli Directory Integrator-Transformation ausführen. Andernfalls könnte Ihre Transformation mit einem Datenbankverbindungsfehler enden.
Protokollfunktionen konfigurieren:
Konfigurieren Sie die Protokollfunktionen für die Fertigungslinie und geben Sie die
Protokollierungsparameter an, die von dieser Fertigungslinie verwendet werden,
wie z. B. den Typ der Protokollfunktion, den Dateipfad, den Appender, das Datumsmuster, das Layoutmuster, die Protokollebene und die Einstellung für die Aktivierung oder Inaktivierung des Protokolls.
Informationen zu diesem Vorgang
Anmerkung: Verwenden Sie die folgenden Konventionen für die Protokolleinstellungen, sodass TRIRIGA Ihre ETL-Protokollierung ordnungsgemäß verarbeitet,
wenn die Transformation über TRIRIGA ausgeführt wird:
v Wenn Sie den Dateipfad setzen, geben Sie den relativen Pfad
../../log/TDI/Protokollname an, wobei Protokollname für den Namen der Fertigungslinie steht, z. B. File Path = ../log/TDI/triLoadMeterData.log. Auf diese
Weise wird sichergestellt, dass die Datei "triLoadMeterData.log" zusammen mit
den restlichen TRIRIGA-Protokollen über die Administrationskonsole von TRIRIGA angezeigt werden kann.
v Setzen Sie den Protokollfunktionstyp auf "DailyRollingFileAppender", um die
Konsistenz mit anderen TRIRIGA-Protokollen zu gewährleisten.
Diese Protokolleinstellungen gelten für Protokolle, die erstellt werden, wenn die
Transformation über den Konfigurationseditor ausgeführt wird. Einige der Werte
werden überschrieben, wenn die Transformation über ein TRIRIGA-ETL-Jobelement aufgerufen wird. Die Protokollebene, das Datumsmuster und das Layoutmuster werden mit Werten überschrieben, die in der TRIRIGA-Datei "log4j.xml" angegeben sind, um die Konsistenz der Tivoli Directory Integrator-Protokolle mit den
TRIRIGA-Protokollen sicherzustellen und zu gewährleisten, dass die Tivoli Directory Integrator-Protokolle genauso wie die TRIRIGA-Protokolle konfiguriert werden
können.
Vorgehensweise
Klicken Sie im Editorbereich auf Optionen > Protokolleinstellungen, um die Protokollfunktionen für die Fertigungslinie zu konfigurieren und die Protokollierungsparameter anzugeben, die von dieser Fertigungslinie verwendet werden.
Beispiel
In dem Beispiel wurde ein DailyRollingFileAppender-Protokoll mit dem Dateipfad
../../log/TDI/triLoadMeterData.log konfiguriert. Die Hooks für die Fertigungslinie können Daten in dieses Protokoll schreiben, indem sie einen Befehl wie den folgenden aufrufen:
var methodName = "triLoadMeterData - LookupMeterItemDTO ";
task.logmsg("DEBUG", methodName + "Entry");
Kapitel 2. Datenstrukturen
41
Fertigungslinien initialisieren:
Während der Initialisierung der Fertigungslinie wird die Script-Engine gestartet
und die Prologhooks der Fertigungslinie werden aufgerufen.
Vorgehensweise
1. Erstellen Sie im Editorbereich einen Hook für die Fertigungslinie, indem Sie auf
Optionen > Hooks für Fertigungslinie klicken und dann das Kontrollkästchen
Prolog – Vor Initialisierung auswählen.
2. Fügen Sie den folgenden JavaScript-Code zum Script hinzu, um eine Datenbankverbindung aufzubauen und die Parameter für die Anwendungseinstellungen abzurufen:
var methodName = "triLoadMeterData - Prolog - Before Init - ";
// Standardmäßig wird diese Fertigungslinie für die Ausführung über TRIRIGA konfiguriert.
// Zur Ausführung dieser Fertigungslinie über den TDI-Konfigurationseditor müssen Sie das Flag
// "runStandAlone" auf "1" setzen und die Datenbankverbindungsparameter im Folgenden
// angegeben werden.
var runStandAlone = 1;
// Datenbankverbindungsparameter abrufen, die von TRIRIGA an diese Fertigungslinie übergeben werd
if (runStandAlone == 0)
{
task.logmsg("DEBUG", methodName + "Set TRIRIGA db connection parameters");
var op = task.getOpEntry();
var jdbcTriURL = op.getString("jdbcTriURL");
var jdbcTriDriver = op.getString("jdbcTriDriver");
var jdbcTriUser = op.getString("jdbcTriUser");
var jdbcTriPassword = op.getString("jdbcTriPassword");
}
else
// Ändern Sie die folgenden Datenbankverbindungsparameter, wenn Sie die
// Fertigungslinie direkt über TDI ausführen.
{
task.logmsg("DEBUG", methodName + "StandAlone: Set default TRIRIGA db
connection parameters");
var jdbcTriURL = "jdbc:oracle:thin:@1.1.1.1:1521:test";
var jdbcTriDriver = "oracle.jdbc.driver.OracleDriver";
var jdbcTriUser = "userid";
var jdbcTriPassword = "password";
}
try
{
triConn.initialize(new Packages.com.ibm.di.server.
ConnectorMode("Iterator"));
}
catch (err)
{
task.logmsg("ERROR", methodName + "TRIRIGA Connection Failed");
task.logmsg("DEBUG", methodName + "Exception:" + err);
dbConnectionFailed = true;
errCount=1;
system.abortAssemblyLine("TRIRIGA DB Connection Failed");
return;
}
triConn.setCommitMode("After every database operation (Including Select)");
var conn2 = triConn.getConnection();
conn2.setAutoCommit(true);
task.logmsg("DEBUG", methodName + "TRIRIGA connection success");
...
42
© Copyright IBM Corp. 2011, 2016
// Anwendungseinstellungen abrufen.
task.logmsg("DEBUG", methodName + "Get triALEnergyLogLagTimeNU from
Application Settings");
var selectStmt1 = conn1.createStatement();
var query = "select TRIALENERGYLOGLAGTIMEN from T_TRIAPPLICATIONSETTINGS";
task.logmsg("DEBUG", methodName + "query:" + query);
var rs1 = selectStmt1.executeQuery(query);
var result = rs1.next();
while (result)
{
try
{
energyLogLagTime = rs1.getString("TRIALENERGYLOGLAGTIMEN");
if (energyLogLagTime == null) energyLogLagTime=5
}
catch (err)
{
task.logmsg("INFO", methodName + "Setting Default Values for
Application Settings");
energyLogLagTime=5
}
task.logmsg("INFO", methodName + "energyLogLagTime:" + energyLogLagTime);
result = rs1.next();
}
rs1.close();
selectStmt1.close();
3. Speichern Sie den Hook für die Fertigungslinie.
Beispiel
In dem Beispiel werden die folgenden Aufgaben im Hook "Prolog – Vor Initialisierung" ausgeführt:
v Tivoli Directory Integrator-Transformationsvariablen abrufen, die an die Fertigungslinie übergeben werden. Diese Aufgabe wird nur ausgeführt, wenn die
Fertigungslinie über ein ETL-Jobelement ausgeführt wird. Wenn die Fertigungslinie über den Konfigurationseditor aufgerufen wird, müssen die JDBC-Verbindungsparameter im Prolog konfiguriert werden.
v Datenbankverbindungen aufbauen
v Fertigungslinienspezifische Einstellungen aus dem Datensatz mit den Anwendungseinstellungen abrufen
Datenabruf:
Daten gehen von verbundenen Systemen über Connectors und einen Eingabemodus
in der Fertigungslinie ein.
In dem Beispiel werden ein JDBC-Connector und eine Attributzuordnung verwendet, um Daten in Ihre Fertigungslinie einzuspeisen.
Connector
Die Tabelleneingabe ist die Quelle für die meisten Ihrer Daten. In der Tabelleneingabe konfigurieren Sie einen Connector, um Daten über die während der Initialisierung an die Fertigungslinie übergebenen Datenbankverbindungsparameter aus Tabellen zu extrahieren.
Kapitel 2. Datenstrukturen
43
In dem Beispiel ruft der Connector "JDBCConnectorToHourlyFact" Eingabezeilen
aus der Stundenfakttabelle ab. Diese Komponente wird dem Abschnitt "Feed" der
Fertigungslinie hinzugefügt.
Auf der Registerkarte Verbindung können Sie JDBC-Verbindungsparameter konfigurieren. In dem Beispiel wird die Option "Erweitert (Javascript)" verwendet, um
die Verbindungsparameter abzurufen, die während der Initialisierung an die Fertigungslinie übergeben werden. Zusätzlich wird die folgende SQL-Abfrage im Abschnitt "Erweitert" im Feld SQL Select angegeben, um den Umfang der aus der
Datenbanktabelle abgerufenen Daten einzugrenzen.
select * from T_TRIASSETENERGYUSEHFACT where TRIMAINMETERBL in (’TRUE’) and
TRI-MAINMETERPROCESSEDN = 0 order by TRIWRITETIMETX.
Tipp: Zum Aktivieren der Protokollierung von SQL-Anweisungen für einen Connector wählen Sie das Kontrollkästchen Ausführliches Protokoll auf der Connectorregisterkarte Verbindung aus.
Attributzuordnung
Verwenden Sie eine Attributzuordnung für den Connector, um sicherzustellen, dass
bestimmte Felder einen Wert enthalten, oder um ein Feld auf einen anderen Wert
zu setzen. In der Attributzuordnung können Sie Werte für ein Zielfeld basierend
auf den Werten in einem Quellenfeld festlegen. Wenn das Zielfeld nicht angegeben
ist, kann das Feld auf einen Standardwert anstelle des Zielfelds gesetzt werden.
Klicken Sie auf den Connector "JDBCConnectorToHourlyFact" und dann auf die
Registerkarte Input Map, um die Attributzuordnung anzuzeigen. In dem Beispiel
wird die Zuordnung verwendet, um Standardwerte für einige der Felder zu setzen.
Sobald der erste Connector seine Aufgaben ausgeführt hat, wird das Bucket von
Informationen (der "Arbeitseintrag", korrekt gesagt die "Arbeit") in der Fertigungslinie an die nächste Komponente übergeben.
Scripting:
Scripts können hinzugefügt werden, um einen benutzerdefinierten Block mit JavaScript-Code zu implementieren.
In dem Beispiel wird Scripting verwendet, um der Fertigungslinie eine angepasste
Verarbeitung hinzuzufügen. In den folgenden Abschnitten sind verschiedene Möglichkeiten für die Verwendung von Scripting beschrieben.
Validierung
In unserem Beispiel wird eine Feldvalidierung für die Eingabedaten verwendet,
wie im folgenden Script gezeigt wird:
var methodName = "triLoadMeterData - JDBCConnectorToHourlyFact GetNext Successful ";
task.logmsg("DEBUG", methodName + "Entry");
rowsProcessed = parseInt(rowsProcessed) + 1;
var SPEC_ID = work.SPEC_ID.getValue();
task.logmsg("DEBUG", methodName + "SPEC_ID: " + SPEC_ID);
// Erforderliche Felder prüfen und Datensatz nicht verarbeiten, wenn Werte fehlen
validData = true;
44
© Copyright IBM Corp. 2011, 2016
if (work.TRICAPTUREDDT.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRICOSTNU is null.");
validData=false;
}
if (work.TRICOSTNU.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRICOSTNU is null.");
validData=false;
}
if (work.TRICOSTNU_UOM.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRICOSTNU_UOM is null.");
validData=false;
}
if (work.TRIDIMASSETTX.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIDIMASSETTX is null.");
validData=false;
}
if (work.TRIENERGYTYPECL.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIENERGYTYPECL is null.");
validData=false;
}
if (work.TRIENERGYTYPECLOBJID.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIENERGYTYPECLOBJID is null.");
validData=false;
}
if (work.TRIMETERIDTX.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIMETERIDTX is null.");
validData=false;
}
if (work.TRIRATENU.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIRATENU is null.");
validData=false;
}
if (work.TRIRATENU_UOM.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIRATENU_UOM is null.");
validData=false;
}
if (work.TRIWRITETIMETX.getValue() == null)
{
task.logmsg("ERROR", methodName + "TRIWRITETIMETX is null.");
validData=false;
}
if (!validData)
{
rowsNotValid = rowsNotValid + 1;
task.logmsg("ERROR", methodName + "Record will NOT be processed.");
var selectStmt1 = conn1.createStatement();
var query = "update " + tableName + " set TRIMAINMETERPROCESSEDN =
3 where SPEC_ID = \’" + SPEC_ID + "\’";
task.logmsg("DEBUG", methodName + "query:" + query);
var count = selectStmt1.executeUpdate(query);
task.logmsg("DEBUG", methodName + "Update count:" + count);
selectStmt1.close();
system.exitBranch();
}
Kapitel 2. Datenstrukturen
45
Datenfilterung
In unserem Beispiel gibt es ein Script, das feststellt, ob ein Datensatz verarbeitet
werden muss. Das folgende Script enthält eine bedingte Anweisung für den Vergleich von zwei Datumsfeldern. Wenn die Bedingung wahr ist, wird die Methode
system.exitBrankch() aufgerufen, was dazu führt, dass der aktuelle Datensatz
übersprungen wird.
// Muss der Datensatz verarbeitet werden?
if (capturedDT < earliestDateUTC)
{
task.logmsg("DEBUG", methodName + "Skip!");
rowsSkipped = rowsSkipped + 1;
// Flag triMainMeterProcessedNU=2 in der Tabelle T_TRIASSETENERYUSEHFACT setzen,
// um anzuzeigen, dass der Datensatz nicht verarbeitet wird
var selectStmt1 = conn1.createStatement();
var query = "update " + tableName + " set TRIMAINMETERPROCESSEDN =
2 where SPEC_ID = \’" + SPEC_ID + "\’";
task.logmsg("DEBUG", methodName + "query:" + query);
var count = selectStmt1.executeUpdate(query);
task.logmsg("DEBUG", methodName + "Update count:" + count);
selectStmt1.close();
system.exitBranch();
}
Datenbankprozedur aufrufen
Gespeicherte Prozeduren können über JavaScript aufgerufen werden. Informationen können an die Prozedur übergeben und an die Transformation zurückgegeben
werden.
In unserem Beispiel ist kein Aufruf einer gespeicherten Prozedur implementiert,
aber im Folgenden sehen Sie ein Beispiel für einen solchen Aufruf. Das folgende
Beispiel zeigt, wie Sequenzen für die Fakttabelleneinträge erstellt werden. Es wird
eine Datenbankprozedur in DB2, SQL Server oder Oracle mit dem Namen NEXTVAL
aufgerufen. Im Folgenden sehen Sie die gespeicherte NEXTVAL-Beispielprozedur:
// Aufruf der gespeicherten Prozedur
task.logmsg("DEBUG", methodName + "Call Stored Procedure")
var command = "{call NEXTVAL(?,?,?)}";
try
{
cstmt = conn2.prepareCall(command);
cstmt.setString(1, "SEQ_FACTSOID");
cstmt.setInt(2, 1);
cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
cstmt.execute();
result = cstmt.getInt(3);
task.logmsg("DEBUG", methodName + "Result:" + result);
work.setAttribute("SPECID", result)
cstmt.close();
}
catch (e)
{
task.logmsg("DEBUG", "Stored Procedure call failed with exception:" + e);
}
Daten aus verschiedenen Datenquellen mit einem Suchconnector verknüpfen:
Sie können eine Suche durchführen, die Ihnen ermöglicht, Daten aus verschiedenen
Datenquellen zu verknüpfen. Diese Aktion kann mit einem angepassten Script oder
mit einem Suchconnector implementiert werden.
46
© Copyright IBM Corp. 2011, 2016
Informationen zu diesem Vorgang
In dem Beispiel wird ein Script verwendet, um eine Datenbanksuche durchzuführen und zusätzliche Daten in den Datenstrom zu extrahieren.
Vorgehensweise
1. Klicken Sie im Editorbereich auf Datenfluss, um ein Script zu erstellen.
2. Klicken Sie auf Komponente hinzufügen, wählen Sie die Komponente Leeres
Script aus und klicken Sie dann auf Fertigstellen.
3. Fügen Sie dem Script den folgenden JavaScript-Code hinzu, um einen Datensatz in der DTO-Tabelle "Zählerposition" zu suchen.
var methodName = "triLoadMeterData - LookupMeterItemDTO ";
task.logmsg("DEBUG", methodName + "Entry");
// Datensatz in Zählerpositions-DTO suchen
var recordFound = false;
var selectStmt1 = conn1.createStatement();
var rs1 = selectStmt1.executeQuery("select DC_SEQUENCE_ID,
TRICOSTPERUNITNU, TRIQUANTITYNU from S_TRIENVMETERITEMDTO1
where TRIMETERIDTX = \’" + work.TRIMETERIDTX.getValue() + "\’
and TRITODATEDA = " + TRITODATEDA );
var result = rs1.next();
while (result)
{
...
}
rs1.close();
selectStmt1.close();
Ausgabe von Einträgen in einer Datenquelle:
Während der Ausgabe werden transformierte Daten in der Fertigungslinie an einen
weiteren JDBC-Connector in einem festgelegten Ausgabemodus, der die Daten an
das verbundene System ausgibt, übergeben. Da das verbundene System datensatzorientiert ist, werden die verschiedenen Attribute in der Arbeit über eine Ausgabeattributzuordnung Spalten im Datensatz zugeordnet.
Connector
Die Tabellenausgabe ist das Ziel für die meisten Ihrer Daten. In der Tabellenausgabe konfigurieren Sie einen JDBC-Connector, um Daten über die während der Initialisierung an die Fertigungslinie übergebenen Datenbankverbindungsparameter in
Tabellen einzufügen oder zu aktualisieren.
In dem Beispiel wird der Connector "JDBCConnectoToMeterItemDTO" verwendet,
um Informationen in der TRIRIGA-Staging-Tabelle "Umweltzählerprotokoll" zu
speichern. Diese Komponente wird am Ende der Fertigungslinie hinzugefügt, sobald Sie alle zu speichernden Informationen generiert haben.
Die Registerkarte Verknüpfungsbedingungen im Connector wird verwendet, um
die folgenden Kriterien anzugeben, die zum Generieren einer SQL-Anweisung für
die Aktualisierung der Ausgabetabelle verwendet werden. In dem Beispiel gehören
zu den Bedingungen die folgenden Einträge:
v TRIMETERIDTX equals $TRIMETERIDTX
v TRITODATEDA equals $TRITODATEDA
Kapitel 2. Datenstrukturen
47
Tipp: Mit dem Dollarzeichen ($) wird angegeben, dass der folgende Variablenname durch den internen Arbeitseintragswert ersetzt werden soll.
Attributzuordnung
Der Connector hat eine Ausgabeattributzuordnung, die verwendet wird, um die
Zuordnung zwischen internen Arbeitsvariablen und den Spaltennamen in der Ausgabetabelle anzugeben.
Wählen Sie die Komponente "JDBCConnectorToMeterItemDTO" aus und klicken
Sie dann auf das Register Ausgabezuordnung. Die Seite Ausgabezuordnung wird
geöffnet. Verwenden Sie diese Seite, um die Quellenfelder den Zielfeldern in der
Zieldatenbank zuzuordnen. Beachten Sie, dass zu den Quellenfeldern die zusätzlichen Felder gehören, die dem Eingabedatenstrom hinzugefügt wurden.
Status an ETL-Jobelemente weitergeben:
Alle Scripts müssen einen Hook "On Success" (Bei Erfolg) und einen Hook "On Failure" (Bei Fehler) enthalten, der die Arbeitsattribute "errCount" und "errMsg" weitergibt, um den Status zurück an TRIRIGA zu berichten, wenn die Transformation
über ein ETL-Jobelement ausgeführt wird.
Informationen zu diesem Vorgang
Das Arbeitsattribut "errCount" gibt die Anzahl der Fehler an, die bei der Ausführung der Fertigungsliniendatei aufgetreten sind. Das Arbeitsattribut "errMsg" gibt
die Fehlernachricht an, die in das TRIRIGA-Protokoll geschrieben wird.
Vorgehensweise
1. Zum Hinzufügen von Hooks für die Fertigungslinie klicken Sie im Editorbereich auf Optionen > Hooks für Fertigungslinie.
2. Wählen Sie die Kontrollkästchen neben den Hooks "On Success" und "On Failure" aus und klicken Sie dann auf Schließen.
3. Ändern Sie den Hook "On Success" zum Setzen der Arbeitsattribute "errCount"
und "errMsg" mit dem folgenden Code.
// errCount und errMessage für AL setzen
if (task.getResult() == null) {
var result = system.newEntry();
result.errCount = errCount;
result.errMsg=’Assembly line completed successfully.’;
task.setWork(result);
}
else
{
work.errCount = errCount;
work.errMsg=’Assembly line completed successfully.’;
}
4. Ändern Sie den Hook "On Failure" zum Setzen der Arbeitsattribute "errCount"
und "errMsg" mit dem folgenden Code.
// errCount und errMessage für triDispatcher-AL setzen
if (task.getResult() == null) {
var result = system.newEntry();
result.errCount = 1;
result.errMsg=’Assembly line failed.’;
task.setWork(result);
}
else
48
© Copyright IBM Corp. 2011, 2016
{
work.errCount = 1;
work.errMsg=’Assembly line failed.’;
}
Transformationstests in Tivoli Directory Integrator:
Nach jedem Schritt ausgeführte Tests vereinfachen das Debugging.
Sie müssen eine Transformation speichern, bevor Sie sie ausführen. Andernfalls
ruft Tivoli Directory Integrator die Fertigungslinie ohne die Änderungen auf, die
Sie seit der letzten Speicherung vorgenommen haben.
Während Sie die Fertigungslinie entwickeln, können Sie sie testen, indem Sie sie
bis zum Ende ausführen oder in dem die Komponenten schrittweise nacheinander
testen. Es gibt zwei Schaltflächen für die Ausführung der Fertigungslinie. Die Aktion In Konsole ausführen startet die Fertigungslinie und zeigt die Ausgabe in einer
Konsolenansicht an. Die Aktion Debugger führt die Fertigungslinie mit dem Debugger aus.
Das Starten einer Fertigungslinie erfolgt über die folgenden Schritte:
1. Wenn die Fertigungslinie Fehler enthält, wie z. B. fehlende Ausgabezuordnungen, werden Sie mit der folgenden Nachricht aufgefordert, die Ausführung der
Fertigungslinie zu bestätigen: This AssemblyLine has one or more errors in
it. Proceed with run?
2. Als Nächstes wird geprüft, ob der Tivoli Directory Integrator-Server verfügbar
ist. Wenn der Server nicht erreichbar ist, wird die folgende Nachricht angezeigt:
Connection to server Default.tdiserver cannot be obtained.
3. Abschließend überträgt der Konfigurationseditor die Laufzeitkonfiguration an
den Server und wartet auf den Start der Fertigungslinie. In diesem Schritt wird
eine Fortschrittsleiste oben rechts im Fenster angezeigt. Die Schaltfläche zum
Stoppen der Fertigungslinie in der Symbolleiste ist ebenfalls abgeblendet, weil
die Fertigungslinie noch nicht gestartet ist. Sobald die Fertigungslinie aktiv ist,
dreht sich die Fortschrittsleiste, und Sie sollten Nachrichten im Protokollfenster
sehen. Jetzt können Sie die Fertigungslinie stoppen, indem Sie in der Symbolleiste auf die Aktion Stoppen klicken.
ETL-Scripts von Tivoli Directory Integrator in TRIRIGA verschieben:
Nach Abschluss und Test der Transformation muss diese in das TRIRIGA-ETLJobelement hochgeladen werden.
In der folgenden Abbildung ist der Datenfluss zwischen der ETL-Umgebung und
TRIRIGA beschrieben.
Kapitel 2. Datenstrukturen
49
ETL-Entwicklungsumgebung
generiert Transformations-XML
XML speichern
XML öffnen
XML-Datei
für
Dateisystem
Für das Management der
Transformationen definiertes
TRIRIGA Application PlatformGeschäftsobjekt/Formular
Hochladen
Herunterladen
Content
Manager
Datenbank
Content
Manager
TRIRIGA Application PlatformWorkflow ruft gemäß dem
Zeitplan eine angepasste Aufgabe
für die Ausführung der
Transformationen auf
Fertigungslinienverbindungen für die TRIRIGA-Datenbank konfigurieren:
Bevor Sie die Laufzeitkonfigurationsdatei in einen TRIRIGA-ETL-Jobelementdatensatz hochladen, müssen Sie die Fertigungslinienverbindungen für die TRIRIGA-Datenbank mit den Parametern konfigurieren, die während der Initialisierung an die
Tivoli Directory Integrator-Fertigungslinie übergeben werden sollen.
Vorgehensweise
1. Klicken Sie auf Tools > Systemkonfiguration > Allgemein > Anwendungseinstellungen.
2. Konfigurieren Sie auf der Registerkarte Umwelteinstellungen im Abschnitt
"Fertigungslinieneinstellungen" die Fertigungslinienverbindungen für die Datenbank.
a. Erforderlich: Konfigurieren Sie DB-TRIRIGA als Verbindung zu Ihrer TRIRIGA-Datenbank. Wenn diese Verbindung nicht konfiguriert wird, werden die
Tivoli Directory Integrator-ETL-Jobelemente nicht ausgeführt.
b. Optional: Konfigurieren Sie DB-OTHER, wenn Ihre Tivoli Directory Integrator-Fertigungslinien eine Verbindung zu einer externen Datenbank herstellen
müssen. Da DB-OTHER optional ist, prüft TRIRIGA nicht, ob diese Einstellung definiert ist. Deshalb muss die Fertigungslinie sicherstellen, dass diese
Verbindung konfiguriert ist, bevor sie verwendet wird.
3. Klicken Sie auf Datenbankverbindung testen, um sicherzustellen, dass die Verbindungsdaten korrekt sind.
Fertigungslinienparameter abrufen:
Nachdem die Fertigungslinienverbindungen für die TRIRIGA-Datenbank konfiguriert wurden, ändern Sie die Fertigungslinie so, dass die Parameter abgerufen werden.
Vorgehensweise
1. Öffnen Sie das Prologscript, das die Fertigungslinie initialisiert.
50
© Copyright IBM Corp. 2011, 2016
2. Fügen Sie die folgenden Anweisungen hinzu, um die TRIRIGA-DB-Verbindungsparameter abzurufen.
var
var
var
var
var
op = task.getOpEntry();
jdbcTriURL = op.getString("jdbcTriURL");
jdbcTriDriver = op.getString("jdbcTriDriver");
jdbcTriUser = op.getString("jdbcTriUser");
jdbcTriPassword = op.getString("jdbcTriPassword");
3. Fügen Sie die folgenden Anweisungen hinzu, um die OTHER-DB-Verbindungsparameter abzurufen.
var
var
var
var
var
op = task.getOpEntry();
jdbcOthURL = op.getString("jdbcOthURL");
jdbcOthDriver = op.getString("jdbcOthDriver");
jdbcOthUser = op.getString("jdbcOthUser");
jdbcOthPassword = op.getString("jdbcOthPassword");
4. Speichern Sie die Änderungen.
ETL-Scripts in TRIRIGA verschieben:
Nachdem Sie ein ETL-Script im Konfigurationseditor von Tivoli Directory Integrator entwickelt haben, müssen Sie es in TRIRIGA verschieben.
Informationen zu diesem Vorgang
Der Konfigurationseditor von Tivoli Directory Integrator speichert die Laufzeitkonfigurationsdatei automatisch an der folgenden Position: Arbeitsbereich/
Projektname/Runtime-Projektname/Projektname.xml.
Vorgehensweise
1. Erstellen Sie einen ETL-Jobelementdatensatz und setzen Sie dabei das Feld
Jobelementtyp auf "Tivoli Directory Integrator-Transformation".
2. Setzen Sie das Feld Name der Fertigungslinie auf den Namen der Fertigungslinie, die Sie nach dem Laden der Konfigurationsdatei starten möchten.
3. Setzen Sie das Feld Transformationsdatei, indem Sie die Laufzeitkonfigurationsdatei hochladen, die Sie im Konfigurationseditor erstellt haben.
4. Optional: Wenn Ihre ETL-Transformation Dateien als Eingabe erfordert, ordnen
Sie diese Dateien dem ETL-Jobelement als Ressourcendateien zu. Wenn Ihre
ETL-Transformation Daten aus einer Arbeitsblattdatei verarbeiten muss, müssen
Sie diese Datei als Ressourcendatei zuordnen.
a. Klicken Sie im Abschnitt "Ressourcendatei" auf Hinzufügen.
b. Setzen Sie Ressourcenname auf einen Namen, der zur Identifizierung der
Ressourcendatei verwendet wird. Dieser Name wird Teil des temporären
Ressourcendateinamens, den TRIRIGA an die ETL-Transformation sendet.
Dies ist hilfreich, wenn Sie einem ETL-Jobelement mehrere Ressourcendateien zuordnen, weil es der ETL-Transformation ermöglicht, die gesendeten
Dateien anhand des Namens zu identifizieren.
c. Klicken Sie zum Festlegen des Felds Ressourcendatei auf das Symbol Ressourcendatei hochladen neben dem Feld, geben Sie die Dateiposition an
und klicken Sie dann auf OK, um diese Datei in das Feld Ressourcendatei
hochzuladen.
An Tivoli Directory Integrator übergebene Variablen:
TRIRIGA übergibt mehrere Eingabevariablen an die ETL-Prozesse von Tivoli Directory Integrator.
Kapitel 2. Datenstrukturen
51
Wenn Sie eine dieser Variablen in einer Fertigungslinie verwenden möchten, greifen Sie über die Tivoli Directory Integrator-Schnittstelle "getOpEntry()" auf die Variablen zu, z. B. var op = task.getOpEntry(); var jdbcTriURL = op.getString("jdbcTriURL");
TRIRIGA extrahiert Feldwerte aus dem ETL-Jobelementdatensatz und übergibt sie
als Eingabeparameter. Die unterstützten Feldtypen sind Textfelder (Text), boolesche
Felder (Boolean), Datumsfelder (Date), Felder für Datum und Uhrzeit (Date and
Time), Locatorfelder (Locator) und Zahlenfelder (Number). Alle ETL-Jobelementfelder dieser Typen werden als Variablen übergeben.
Wenn ein ETL-Jobelement die folgenden Felder enthält, werden die Variablen in
der zweiten Tabelle an Tivoli Directory Integrator übergeben:
Tabelle 6. ETL-Jobelementfelder
Feldname
Feldbezeichnung
Feldtyp
triActiveEndDA
Aktives Enddatum
Date
triActiveStartDA
Aktives Startdatum
Date
triControlNumberCN
Kontrollnummer
Kontrollnummer
triCreatedByTX
Erstellt von
Text
triLocator
triLocator
Text
triNameTX
Name
Text
triTransformBI
Transformationsdatei
Binary
Die folgenden Variablen werden an Tivoli Directory Integrator übergeben:
Tabelle 7. An Tivoli Directory Integrator übergebene Variablen
52
An Tivoli Directory Integrator übergebene
Variablen
Beschreibung
triNameTX
(Text)
triActiveStartDA
(Number) Datum in Millisekunden seit dem
1. Januar 1970
triActiveStartDA_DATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe gemäß der Angabe im Attribut
triActiveStartDA_MinDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 00:00:00
triActiveStartDA_MaxDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 23:59:59
triActiveStartDA_Min
(Number) Datum in Millisekunden seit dem
1. Januar 1970; Zeitangabe ist 00:00:00
triActiveStartDA_Max
(Number) Datum in Millisekunden seit dem
1. Januar 1970; Zeitangabe ist 23:59:59
triActiveEndDA
(Number) Datum in Millisekunden seit dem
1. Januar 1970
triActiveEndDA_DATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe gemäß der Angabe im Attribut
triActiveEndDA_MinDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 00:00:00
triActiveEndDA_MaxDATE
(Date) Bei Oracle oder DB2 eingeschlossen;
Zeitangabe ist 23:59:59
© Copyright IBM Corp. 2011, 2016
Tabelle 7. An Tivoli Directory Integrator übergebene Variablen (Forts.)
An Tivoli Directory Integrator übergebene
Variablen
Beschreibung
triActiveEndDA_Min
(Number) Datum in Millisekunden seit dem
1. Januar 1970; Zeitangabe ist 00:00:00
triActiveEndDA_Max
(Number) Datum in Millisekunden seit dem
1. Januar 1970; Zeitangabe ist 23:59:59
triCreatedByTX
(Text)
triRunDATE
(Number) Von der angepassten
Workflowaufgabe festgelegtes
Ausführungsdatum
triLocator
(Text – Locator) Locatorfeld mit einem Verweis auf ein anderes Geschäftsobjekt. Diese
Variable enthält den Textwert des Feldes für
diesen Datensatz.
triLocator_IBS_SPEC
(Text - Locator) Enthält die spec_id des
Datensatzes im Feld triLocator. Anhand dieser spec_id können Sie in anderen
Datenbanktabellen nach zugehörigen Informationen zu diesem Datensatz suchen.
triAssemblyLineNameTX
Der Name der Hauptfertigungslinie in der
ETL-Transformation, die Sie ausführen
möchten.
TRIRIGA übergibt auch Ressourcendateivariablen. Eine Ressourcendatei ist eine
Datei, die eine ETL-Transformation als Eingabe erfordert. Wenn eine ETL-Transformation beispielsweise Daten aus eine CSV-Datei (.csv) verarbeiten muss, muss sie
wissen, wo und wie diese Datei bei der Ausführung referenziert werden muss.
Wenn ein ETL-Jobelement zwei zugehörige Ressourcendateidatensätze hat, enthält
jeder die folgenden Felder:
Tabelle 8. Ressourcendateidatensätzen zugeordnete Felder
Feldname
Feldbezeichnung
Feldtyp
triResourceNameTX
Name für die Identifizierung Text
der Ressourcendatei
triResourceFileBI
Inhalt der Ressourcendatei
Binary
Die folgenden Variablen werden für diese Ressourcendateidatensätze an Tivoli Directory Integrator übergeben:
Tabelle 9. An Tivoli Directory Integrator übergebene Variablen
An Tivoli Directory Integrator übergebene
Variablen
RESOURCE_1
Beschreibung
Vollständig qualifizierter Dateiname der
Ressourcendatei. Der Dateiname enthält den
Wert aus dem Feld "triResourceNameTX",
damit die Datei von der ETL-Transformation
identifiziert werden kann.
Kapitel 2. Datenstrukturen
53
Tabelle 9. An Tivoli Directory Integrator übergebene Variablen (Forts.)
An Tivoli Directory Integrator übergebene
Variablen
RESOURCE_2
Beschreibung
Vollständig qualifizierter Dateiname der anderen Ressourcendatei. Der Dateiname enthält den Wert aus dem Feld
"triResourceNameTX", damit die Datei von
der ETL-Transformation identifiziert werden
kann.
Tabelle 10. TRIRIGA übergibt auch JDBC-Eingabevariablen, die in den
Anwendungseinstellungen definiert sind.
An Tivoli Directory Integrator übergebene
Variablen
Beschreibung
jdbcTriURL
URL des TRIRIGA-Datenbanktreibers
jdbcTriDriver
Name des TRIRIGA-Datenbanktreibers
jdbcTriUser
Name des TRIRIGA-Datenbankbenutzers
jdbcTriPassword
TRIRIGA-Datenbankkennwort
jdbcOthURL
URL des anderen Datenbanktreibers
jdbcOthDriver
Name des anderen Datenbanktreibers
jdbcOthUser
Name des anderen Datenbankbenutzers
jdbcOthPassword
Anderes Kennwort
ETL-Scripts in der Anwendung debuggen:
Zum Debuggen von ETL-Scripts in der Anwendung müssen Sie zuerst die Protokollierung konfigurieren und dann die angepasste Workflowaufgabe "RunETL"
auslösen, um die Protokollinformationen anzuzeigen.
Protokollierung konfigurieren:
TRIRIGA stellt Debugfunktionen bereit, wenn in der TRIRIGA-Anwendung ETLScripts ausgeführt werden.
Vorgehensweise
1. Wählen Sie in der Administratorkonsole das verwaltete Objekt "Platform Logging" aus. Wählen Sie dann die Option zum Aktivieren der ET-Protokollierung
aus.
2. Wählen Sie Category ETL > Transforms > Run Transform aus, um die Debugprotokollierung für den TRIRIGA-Plattformcode, der ETL-Jobelemente verarbeitet, zu aktivieren. Protokollnachrichten werden in der Datei "server.log" ausgegeben.
3. Wählen Sie Category ETL > Transforms > Tivoli Directory Integrator aus, um
die Debugprotokollierung in Tivoli Directory Integrator-Fertigungslinien zu aktivieren. Protokollnachrichten werden im Fertigungslinienprotokoll ausgegeben.
Jede Fertigungslinie hat ihre eigene Protokolldatei.
4. Wenden Sie die Änderungen an. Wenn jetzt ein ETL-Script ausgeführt wird,
werden ETL-bezogene Informationen in das Serverprotokoll oder Fertigungslinienprotokoll aufgenommen.
54
© Copyright IBM Corp. 2011, 2016
Wichtig: Da ein Protokoll ein immenses Informationsvolumen enthalten kann,
sollten Sie die Tivoli Directory Integrator-Protokollierung nur für eine Ausführung des ETL-Jobelements auf "Debug" setzen.
Debugging mit ETL-Jobs:
Nachdem Sie die Protokollierung konfiguriert haben, benötigen Sie einen Auslöser
für die angepasste Workflowaufgabe "RunETL", damit Sie Informationen in den
Protokollen sehen können.
Vorgehensweise
Wenn Sie das ETL-Jobelement verwenden, können Sie einfach in dem Formular auf
Prozess ausführen klicken. Vergessen Sie nicht, die vom ETL-Script erwarteten
Feldwerte in das Formular einzutragen.
Anmerkung: Verwenden Sie die Aktion Prozess ausführen nur für Debugzwecke.
In der Produktion sollten Sie stattdessen den Jobplaner verwenden. Beachten Sie,
dass die Aktion Prozess ausführen Tabellen in der Datenbank aktualisiert. Aus diesem Grund sollten Sie diese Aktion nicht in einer Produktionsumgebung verwenden.
Beispiel
Das folgende Beispiel zeigt ein Serverprotokollausgabe:
2014-03-27 13:18:10,427 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: getETLVarsFromFields
...
2014-03-27 13:18:10,431 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: getETLVarsFromFields
2014-03-27 13:18:10,431 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: getETLVarsFromResourceFiles
2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: getETLVarsFromResourceFiles
2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Processing Job Item with Type = Tivoli Directory Integrator Transformation
2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: transformRecordTDI
2014-03-27 13:18:10,474 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.TDIRequest]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: init
2014-03-27 13:18:10,474 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.TDIRequest]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: init
2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189) ***
ETL Variable = triIdTX : triLoadMeterData
Kapitel 2. Datenstrukturen
55
2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189) ***
ETL Variable = triAssemblyLineNameTX : triLoadMeterData
...
2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
*** ETL Variable = triNameTX :
Load Meter Item Staging Table
2014-03-27 13:18:10,488 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
DataSourceConnectionInfoImpl] (WFA:221931 - 15290804
triProcessManual:305676189 IE=305676189)
Entry: init
2014-03-27 13:18:10,495 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
DataSourceConnectionInfoImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: init
2014-03-27 13:18:10,495 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
DataSourceConnectionInfoImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: init
2014-03-27 13:18:10,496 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
DataSourceConnectionInfoImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: init
2014-03-27 13:18:10,497 INFO [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Setting TDI log level to Debug.
2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
LogSettingsServiceImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: getLogSettings
2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
LogSettingsServiceImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Found DailyRollingFileAppender.
2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.
LogSettingsServiceImpl]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: getLogSettings
2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.TDIRequest]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Entry: send
2014-03-27 13:18:14,396 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.TDIRequest]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: send
2014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
RunETL request returned from
TDI server version: 7.1.1.3 - 2013-12-06 running on host: i3650x3cr2
2014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
RunETL: Prepare=2014/03/27
13:18:10.475 Start=2014/03/27 13:18:10.503 Stop=2014/03/27 13:18:14.396
56
© Copyright IBM Corp. 2011, 2016
2014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
RunETL: Processing ended
after 3 seconds.
2014-03-27 13:18:14,396 DEBUG [com.tririga.platform.workflow.runtime.
taskhandler.ETL.RunETL]
(WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)
Exit: transformRecordTDI
Das folgende Beispiel zeigt ein Fertigungslinienprotokoll:
2014-03-27 13:18:11,062 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS967I AssemblyLine started by triLoadMeterData_1395951491025.
2014-03-27 13:18:11,063 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS255I AssemblyLine AssemblyLines/triLoadMeterData is started.
2014-03-27 13:18:11,073 DEBUG [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS089I Current statistics: Interval=0, Maximum Errors=0, Maximum Read=0
2014-03-27 13:18:11,073 DEBUG [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS069I Loading Connectors.
...
2014-03-27 13:18:14,384 DEBUG [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success Entry
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success Processing Success
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success ---------------------------------------------------------------------------2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success Processing Summary
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success rowsProcessed
= 360
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success stagingTableWriteRowSuccess = 360
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success stagingTableWriteRowFail
= 0
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success rowsSkipped
= 0
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success rowsNotValid
= 0
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success dcJobsToReadyState
= 0
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success createdDT
= 1395951491088
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success finishedDT
= 1395951494384
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success seconds
= 3
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
Kapitel 2. Datenstrukturen
57
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success secondsPerRecord
= 0.01
2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success ---------------------------------------------------------------------------2014-03-27 13:18:14,386 DEBUG [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
triLoadMeterData - On Success Exit
2014-03-27 13:18:14,386 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS116I Scripting hook of type onsuccess finished.
2014-03-27 13:18:14,386 INFO [org.apache.log4j.DailyRollingFileAppender.
a9e2d096-4cdc-4f87-a57b-5e31323093d9]
CTGDIS080I Terminated successfully (0 errors).
Tipps zur Leistungsoptimierung:
Verwenden Sie die folgenden Informationen, um die Leistung zu verbessern.
Wenn Sie Ihre ETL-Prozesse so konfiguriert haben, dass die gewünschten Aktionen
ausgeführt werden, führen Sie eine Basisleistungsmessung durch.
1. Führen Sie im Konfigurationseditor von Tivoli Directory Integrator den ETLProzess für eine Datenbank aus, bei der tausende Zeilen zu Ihrer Fakttabelle
hinzugefügt werden.
2. Vergewissern Sie sich, dass eine Datenbankverbindung verwendet und die Tivoli Directory Integrator-Transformation in dem Netz ausgeführt wird, in dem
sich die Datenbank befindet, um eine Netzlatenz zu vermeiden. Führen Sie den
Prozess nicht über ein virtuelles privates Netz aus.
3. Sehen Sie sich die Informationen an, die für die Ausführung protokolliert werden. Für eine Ausführung des ETL-Prozesses "triLoadMeterData" sehen Sie sich
beispielsweise die Datei "triLoadMeterData.log" an.
Analyse der Ausführung:
1. Analysieren Sie die Ausführung. Ist ein Schritt langsamer als die anderen?
2. Ist der Dateneingabeschritt langsam? Muss der Datenbank ein Index hinzugefügt werden? Wenn ja, fügen Sie einen Index hinzu und wiederholen Sie die
Ausführung. Ist die Leistung jetzt besser? Vielleicht sollten Sie einen Filterschritt nutzen und nicht die Datenbank zum Herausfiltern der Ergebnismenge
verwenden.
Tipps für die Entwicklung von ETL-Prozessen:
v Vermeiden Sie komplexe SQL und Aggregatfunktionen wie COUNT, MIN, MAX
und SUM. Wenn Sie diese Funktionen verwenden müssen, prüfen Sie, ob ein Index für den Dateneingabeschritt hilfreich ist. Erstellen Sie keinen Index für ein
Feld mit dem Datentyp "Large Varchar". SQL Server kann nur Indizes mit < 900
Bytes handhaben.
v Vermeiden Sie nach Möglichkeit OR und NOT sowie die Verwendung von Ansichten (M_TableName in IBM TRIRIGA-Datenbanken).
ETL-Transformationen ausführen
Verwenden Sie den Jobplaner von TRIRIGA, um die ETL-Jobelemente und Jobgruppen auszuführen, die zum Verschieben von Daten in die TRIRIGA-Fakttabellen oder flachen Hierarchietabellen verwendet werden.
58
© Copyright IBM Corp. 2011, 2016
ETL-Jobelemente, Jobgruppen und Jobplaner
ETL-Jobelemente definieren ein ETL-Transformationsscript oder einen Prozess für
die erneute Erstellung der Hierarchie, das bzw. der verwendet wird, um Informationen aus der TRIRIGA-Datenbank zu erfassen, diese zu transformieren und dann
in Fakttabellen zu laden. ETL-Jobgruppen sind Sammlungen von ETL-Jobelementen. Jobplaner definieren, wann ETL-Jobelemente und -Jobgruppen auszuführen
sind. Zum Ausführen der Jobs muss ein Jobplan aktiviert werden, dem diese Jobs
zugeordnet sind.
Das Analyse-/Berichtstool von TRIRIGA Workplace Performance Management berechnet mithilfe von Abfragen von Fakttabellen, die nach den Daten in flachen Hierarchietabellen gruppiert werden, Metriken, die zum Generieren von Berichten und
Graphen verwendet werden. ETL-Jobelemente werden vom Jobplaner verwendet,
um die Workflows auszulösen, die Daten aus Quellentabellen wie TRIRIGA-Geschäftsobjekttabellen extrahieren und diese dann in Fakttabellen laden. ETL-Jobelemente können auch zum Aktualisieren von flachen Hierarchien verwendet werden.
Es gibt drei Typen von ETL-Jobelementen in TRIRIGA Workplace Performance Management:
Kettle-Transformation
Extrahiert Daten aus TRIRIGA-Geschäftsobjekttabellen und lädt diese in
TRIRIGA Workplace Performance Management-Fakttabellen.
Tivoli Directory Integrator-Transformation
Extrahiert Daten aus TRIRIGA-Geschäftsobjekttabellen oder Tabellen aus
externen Quellen und lädt diese in TRIRIGA Workplace Performance Management-Fakttabellen.
Hierarchie erneut erstellen
Extrahiert Daten aus TRIRIGA-Geschäftsobjekttabellen und lädt diese in
TRIRIGA Workplace Performance Management-Tabellen mit flacher Hierarchie.
ETL-Jobelemente erstellen oder ändern
ETL-Jobelemente definieren die Scripts, die Informationen aus der TRIRIGA-Datenbank erfassen, diese transformieren und dann in Fakttabellen oder flache Hierarchietabellen laden.
Vorgehensweise
1. Klicken Sie auf Tools > Systemkonfiguration > Jobplanung > ETL-Jobelement.
2. Wählen Sie ein vorhandenes Jobelement aus oder klicken Sie auf Hinzufügen.
3. Geben Sie im Abschnitt "Allgemein" eine ID für das ETL-Jobelement ein. Geben Sie im Feld ID den Namen der Fakttabelle ein. Der Status wird vom TRIRIGA-System bereitgestellt, wenn das ETL-Jobelement erstellt wird.
4. Geben Sie einen Namen und eine Beschreibung für das ETL-Jobelement ein.
Im Abschnitt "Details" wird das Feld Jobelementklasse vom TRIRIGA-System
auf ETL gesetzt.
5. Wählen Sie den Jobelementtyp aus.
6. Wenn der Jobelementtyp auf Hierarchie neu erstellen gesetzt ist, führen Sie
die folgenden Schritte aus:
a. Geben Sie den Namen des Hierarchiemoduls ein. Wenn Sie einen Namen
angeben, muss es sich um ein Modul mit einer in TRIRIGA definierten Hierarchie handeln, z. B. Lokation. Bei der Ausführung dieses ETL-Jobelements werden alle flachen Hierarchien für dieses Modul neu erstellt.
Kapitel 2. Datenstrukturen
59
b. Geben Sie den Hierarchienamen ein. Bei der Ausführung dieses ETL-Jobelements wird die flache Hierarchie für dieses Geschäftsobjekt neu erstellt.
Wenn Sie einen Hierarchienamen angeben, hat dieser Vorrang vor dem Namen des Hierarchiemoduls.
c. Das TRIRIGA-System ignoriert Informationen, die für die Kalenderperiode,
die Fiskalperiode und andere Daten im Abschnitt "Details" eingegeben
werden.
d. Wenn Sie alle flachen Hierarchien eines bestimmten Moduls neu erstellen
möchten, geben Sie den Namen des Hierarchiemoduls an und lassen Sie
den Hierarchienamen leer.
e. Wenn Sie eine einzelne flache Hierarchie neu erstellen möchten, geben Sie
den Namen des Hierarchiemoduls und den Hierarchienamen an.
f. Wenn Sie den Namen des Hierarchiemoduls und den Hierarchienamen leer
lassen oder eines der beiden Felder den Wert "Alle" enthält, werden alle flachen Hierarchien neu erstellt.
7. Wenn der Jobelementtyp auf Kettle-Transformation oder TDI-Transformation
gesetzt ist, führen Sie die folgenden Schritte aus:
a. Geben Sie die Transformationsdatei an, indem Sie sie suchen und dann die
Datei auswählen. Das TRIRIGA-System erwartet eine Kettle-Transformationsdatei im Format ".ktl" oder ".xml" und eine Tivoli Directory IntegratorTransformationsdatei im Format ".xml".
b. Optional: Nachdem Sie die Transformationsdatei hochgeladen haben, können Sie sie anzeigen, indem Sie auf Inhalt anzeigen klicken.
8. Wenn der Jobelementtyp auf TDI-Transformation gesetzt ist, geben Sie den
Namen einer Fertigungslinie an.
9. Wenn der Jobelementtyp auf Kettle-Transformation gesetzt ist, gehen Sie wie
folgt vor:
a. Geben Sie die Modulnamen ein. Wenn Sie mehrere Namen angeben, müssen Sie sie durch Kommas voneinander trennen.
v Jeder Modulname wird für die Transformationsdatei in eine Variable mit
dem Format ${Module.<Modulname>.ViewName} konvertiert, wobei <Modulname> für den Modulnamen steht.
v Jeder Variablenwert, der an den ETL-Prozess übergeben wird, ist der
Name der Ansicht für dieses Modul. Der Variablenwert kann verwendet
werden, wenn der ETL-Prozess den Namen der Ansicht eines bestimmten Moduls wissen muss.
b. Geben Sie die Geschäftsobjektnamen ein. Wenn Sie mehrere Geschäftsobjektnamen eingeben, müssen Sie die Namen durch Kommas voneinander
trennen.
v Jeder Geschäftsobjektname wird für die Transformationsdatei in eine Variable mit dem Format ${BO.<Geschäftsobjektname>.TableName} konvertiert, wobei <Geschäftsobjektname> für den Namen des Geschäftsobjekts
steht.
v Ein Geschäftsobjekt ist in der Datenbank nur dann wirklich eindeutig,
wenn der Modulname eingeschlossen wird. Wenn Sie ein Geschäftsobjekt verwenden, das nicht eindeutig benannt ist, schließen Sie den Modulnamen in eine durch Kommas getrennte Liste ein. Verwenden Sie die
folgende Syntax: <Modulname>::<Geschäftsobjektname>, wobei <Modulname> für den Modulnamen und <Geschäftsobjektname> für den Namen des
Geschäftsobjekts steht.
v Eine Variable wird der Transformationsdatei im Format
${BO.<Modulname>::<Geschäftsobjektname>.TableName} bereitgestellt. Jeder
60
© Copyright IBM Corp. 2011, 2016
Variablenwert ist der Name der Tabelle für dieses Geschäftsobjekt. Der
Variablenwert kann verwendet werden, wenn der ETL-Prozess den Namen der Tabelle eines bestimmten Geschäftsobjekts wissen muss.
10. Wenn der Jobelementtyp auf Kettle-Transformation oder TDI-Transformation
gesetzt ist, führen Sie die folgenden Schritte aus:
a. Gewöhnlich werden ETL-Prozesse unter der Steuerung eines oder mehrerer Jobpläne ausgeführt.
b. Für die Durchführung von Komponententests für das ETL-Jobelement, definieren Sie im Abschnitt "Details" die Datumsparameter.
c. Die folgenden Datumsparameter sind vom ETL-Prozess abhängig. Einige
ETL-Prozesse verwenden die Informationen, andere nicht. Die Datumsparameter werden überschrieben, wenn ein ETL-Jobelement vom Jobplaner
ausgeführt wird.
v Wählen Sie die Kalenderperiode aus, um eine Variable zu übergeben,
die die Kalenderperiode des Jobs enthält.
v Wählen Sie die Fiskalperiode aus, um eine Variable zu übergeben, die
die Fiskalperiode des Jobs enthält. Die Fiskalperiode wird vom Feld
Erfassungszeitraum in den TRIRIGA Workplace Performance Management-Fakttabellen verwendet.
v Wählen Sie das Datum aus, um eine Variable zu übergeben, die den Datumsdatensatz des Jobs enthält. Der Datumsdatensatz wird verwendet,
um das Feld Datumsdimension in den TRIRIGA Workplace Performance Management-Fakttabellen zu füllen.
v Wählen Sie das Datum aus, um eine Variable zu übergeben, die das Datum des Jobs enthält. Geben Sie ein Datum ein oder klicken Sie auf das
Symbol Kalender und wählen Sie ein Datum aus.
v Wählen Sie das Startdatum aus, um das Datum der ersten Datenerfassung anzugeben und eine Variable zu übergeben, die das Startdatum des
Jobs enthält. Geben Sie ein Datum ein oder klicken Sie auf das Symbol
Kalender und wählen Sie ein Datum aus.
v Wählen Sie das Enddatum aus, um das Datum der letzten Datenerfassung anzugeben und eine Variable zu übergeben, die das Enddatum des
Jobs enthält. Geben Sie ein Datum ein oder klicken Sie auf das Symbol
Kalender und wählen Sie ein Datum aus.
11. Der Abschnitt "Metriken" enthält eine Zusammenfassung der Protokollierungsdaten für dieses ETL-Jobelement. Der Wert für das Feld Durchschnittliche
Dauer wird basierend auf den Werten in den Feldern Gesamtdauer und Anzahl der Läufe (Gesamtdauer / Anzahl der Läufe) berechnet.
12. Im Abschnitt "Protokolle" werden die Zeit und der Status jeder Ausführung
des ETL-Jobelements angezeigt. Diese Daten sind im Abschnitt "Metriken" zusammengefasst.
13. Klicken Sie auf Entwurf erstellen.
14. Klicken Sie auf Aktivieren.
Ergebnisse
Der Datensatz für das ETL-Jobelement wird erstellt und kann in eine Jobgruppe
und/oder einen Jobplan eingeschlossen werden.
Kapitel 2. Datenstrukturen
61
Nächste Schritte
Für die Durchführung von Komponententests klicken Sie auf Prozess ausführen,
um die Kettle- oder Tivoli Directory Integrator-Transformation oder den Prozess
für die Neuerstellung der Hierarchie, der im ETL-Jobelement angegeben ist, auszulösen.
Jobgruppen hinzufügen oder ändern
Verwenden Sie zur Vereinfachung der Jobplanung Jobgruppen, um Sammlungen
von ETL-Jobelementen zu erstellen, die nach demselben Zeitplan ausgeführt werden sollen.
Vorgehensweise
1. Klicken Sie auf Tools > Systemkonfiguration > Jobplanung > Jobgruppe.
2. Wählen Sie eine vorhandene Jobgruppe aus oder klicken Sie auf Hinzufügen.
3. Geben Sie im Formular Jobgruppe einen Namen und eine Beschreibung für die
Jobgruppe ein.
4. Verwenden Sie die Aktionen Suchen und Entfernen, um ETL-Jobelemente in
der Jobgruppe im Abschnitt "Jobelemente" hinzuzufügen oder zu entfernen.
5. Optional: Passen Sie die Reihenfolge der Jobelemente an.
6. Klicken Sie auf Erstellen.
Ergebnisse
Der Jobgruppendatensatz ist jetzt verfügbar und kann in einen Jobplan eingeschlossen werden.
Jobplaner erstellen oder ändern
Mithilfe von Jobplanern können Sie planen, wann TRIRIGA ETL-Jobelemente und
Jobgruppen ausführt. Sie können festlegen, dass die Jobs stündlich, täglich, wöchentlich oder monatlich ausgeführt werden.
Vorbereitende Schritte
Obwohl TRIRIGA vordefinierte Jobplaner enthält, werden Jobs erst dann geplant,
nachdem Sie die vordefinierten Jobplaner überarbeitet oder einen neuen Jobplaner
mit einem Startdatum und einem Enddatum erstellt und auf Aktivieren geklickt
haben.
Vorgehensweise
1. Klicken Sie auf Tools > Systemkonfiguration > Jobplanung > Jobplaner.
2. Wählen Sie einen vorhandenen Jobplaner aus oder klicken Sie auf Hinzufügen.
3. Geben Sie einen Namen und eine Beschreibung für den Jobplaner ein.
4. Wählen Sie im Abschnitt "Plan" den Plantyp in der angezeigten Liste aus.
v
Wenn Sie den Plantyp Täglich auswählen, werden die Felder Stündlich und
Intervall angezeigt. Klicken Sie auf das Kontrollkästchen Stündlich, um die
stündliche Ausführung der Jobs zu planen, und klicken Sie dann auf das
Feld Intervall, um die Anzahl der Stunden zwischen den einzelnen geplanten Jobs anzugeben.
v Wenn Sie den Plantyp Erweitert auswählen, wird das Feld Wiederholungsmuster im Abschnitt "Plan" angezeigt. Klicken Sie auf Wiederholungsmuster,
um das Formular Jobereignis zu öffnen, das flexible Optionen für die Planung von Jobs bietet.
62
© Copyright IBM Corp. 2011, 2016
5. Optional: Wählen Sie im Abschnitt "Plan" das Kontrollkästchen Protokollaufzeichnungen durchführen? aus, um anzuzeigen, dass historische Daten in die
Metriken eingeschlossen werden, die anhand der Ergebnisse der Aktivitäten in
diesem Jobplan berechnet werden. Bei der Aktivierung dieses Jobplans weist
diese Option den Jobplaner an, Jobs zu generieren und auszuführen, deren geplantes Datum vor dem aktuellen Datum liegt. Die Parameter wie Startdatum,
Enddatum und Fiskalperiode für den Zeitrahmen oder die Periode werden in
jedem Jobelement übergeben, um eine Protokollaufzeichnung zu simulieren. Da
der Prozess jedoch sofort ausgeführt wird, ist der Erfolg gänzlich davon abhängig, wie die ETL-Scripts diese Parameter verwenden. Die Ausführung von
Protokollaufzeichnungen ist eine erweiterte Option, die ein umfassendes Verständnis der Funktionsweise jedes Scripts erfordert.
6. Wählen Sie das Startdatum für die erste Aufzeichnung bzw. Erfassung, das
Enddatum für die letzte Aufzeichnung bzw. Erfassung und den Erfassungsnachlauf ab Enddatum jeder Erfassung, d. h., die Zeit, die das System mit dem
Starten der Workflows wartet, die den Job verarbeiten, aus. Jede Datenerfassungsperiode wird anhand des Startdatums und des Plantyps berechnet. Das
System löst unmittelbar nach Ablauf des Erfassungsnachlaufs ab dem Ende jeder Erfassungsperiode einen Workflow für die Ausführung der ETL-Jobelemente aus. Wenn das Startdatum beispielsweise der 1. 1. 2014 ist, als Plantyp "Monatlich" ausgewählt ist und der Erfassungsnachlauf 1 Tag ist, werden die
folgenden Ereignisse geplant:
Tabelle 11. Jobausführungen, die seit Anfang des Monats geplant sind
Jobausführungen - Direkt
nach 00:00 Uhr am
Startdatum der erfassten
Daten
Enddatum der erfassten Daten
1. 2 2014
1. 1. 2014
31. 1. 2014
1. 3. 2014
1. 2 2014
28. 2 2014
1. 4. 2014
1. 3. 2014
31. 3. 2014
Das Enddatum bestimmt das letzte zu erfassende Ereignis. Wenn im vorherigen
Beispiel der 15. 3 2014 das Enddatum wäre, würde das letzte Ereignis wie folgt
geplant werden:
Tabelle 12. Jobausführungen, die ab Mitte des Monats geplant sind
Jobausführungen - Direkt
nach 00:00 Uhr am
Startdatum der erfassten
Daten
Enddatum der erfassten Daten
16. 3. 2014
1. 3. 2014
15. 3. 2014
v Wenn das Kontrollkästchen Erfassungszeitraum zurücksetzen? ausgewählt
ist, wird das System gezwungen sicherzustellen, dass der Erfassungszeitraum
nach jeder Jobausführung aktuell bleibt.
v Wenn beispielsweise ein aktivierter Jobplaner mit dem Plantyp "Monatlich"
konfiguriert ist, wird das System jeden Monat aktiviert und führt die Jobelemente im Datensatz aus. Wenn während der Aktivierung die Option "Erfassungszeitraum zurücksetzen" für den Jobplaner ausgewählt wird, stellt das
System sicher, dass der Erfassungszeitraum basierend auf dem Aktivierungsdatum korrekt gesetzt wird.
v Wenn Sie Jobelemente und/oder Jobgruppen angeben und diesen Jobplandatensatz aktivieren, wird die Liste geplanter Ereignisse für diesen Jobplan im
Abschnitt "Geplante Jobs" angezeigt.
7. Verwenden Sie im Abschnitt "Jobelemente" die Aktion Suchen oder Entfernen,
um die ETL-Jobelemente und Jobgruppen auszuwählen, die in den Plan einge-
Kapitel 2. Datenstrukturen
63
schlossen werden sollen, und klicken Sie dann auf OK. Die Jobelemente werden in der in der Spalte "Reihenfolge" angegebenen Reihenfolge ausgeführt.
v Wenn dieser Jobplan aktiviert wird, werden im Abschnitt "Metriken" die Protokolldaten für diesen Jobplan zusammengefasst.
v Die durchschnittliche Dauer wird basierend auf der Gesamtdauer und der
Anzahl der Läufe (Gesamtdauer / Anzahl der Läufe) berechnet.
v Wenn dieser Jobplan aktiviert wird, werden im Abschnitt "Protokolle" Zeit
und Status jeder Ausführung des Jobplans angezeigt.
8. Optional: Passen Sie die Reihenfolge der Jobelemente an.
9. Klicken Sie auf Entwurf erstellen und dann auf Aktivieren.
Ergebnisse
Das TRIRIGA-System erstellt eine Gruppe geplanter Jobs, die auf dem Plantyp und
den Start- und Enddaten basieren. Diese Jobs werden im Abschnitt "Geplante Jobs"
des Jobplans angezeigt.
Transformationsobjekte anpassen
TRIRIGA stellt ETL-Jobelemente und Transformationsobjekte bereit. Anstatt ein
neues Transformationsobjekt zu definieren, können Sie ein vorhandenes Transformationsobjekt eines ETL-Jobelements anpassen. Wenn Sie ein vorhandenes Transformationsobjekt verwenden, müssen Sie die Transformation definieren oder verwalten. Die Geschäftsobjekte, Formulare und Workflowaufgaben müssen Sie jedoch
nicht definieren oder verwalten, weil diese bereits definiert sind.
Transformationsgeschäftsobjekte, Formulare und Workflows definieren
Sie können das vorhandene TRIRIGA-ETL-Jobelement als Beispiel für der Definition eines neuen Transformationsobjekts verwenden. Wenn Sie ein neues eigenes
Transformationsobjekt definieren, müssen Sie auch die Geschäftsobjekte, Formulare
und Workflows definieren und verwalten.
Vorbereitende Schritte
Erstellen Sie die Quellen- und Zieltabellen (Geschäftsobjekte) und konfigurieren Sie
die entsprechenden Zuordnungen.
Vorgehensweise
1. Erstellen Sie das Transformationsgeschäftsobjekt.
a. Identifizieren Sie die an die Transformation zu übergebenden Variablen und
fügen Sie sie dem Transformationsgeschäftsobjekt hinzu. Fügen Sie beispielsweise einen Zeitraum hinzu.
b. Stellen Sie sicher, dass es ein Binärfeld für die Transformations-XML gibt.
2. Erstellen Sie das Transformationsformular und geben Sie ein Navigationselement oder eine andere Methode zum Anzeigen des Transformationsformulars
an.
3. Erstellen Sie den Workflow, der die angepasste ETL-Transformationsworkflowaufgabe aufruft.
a. Konfigurieren Sie Zeitplan für die Ausführung des Workflows.
b. Iterieren Sie durch alle Transformationsgeschäftsobjektdatensätze, die ausgeführt werden müssen, und rufen Sie dabei die angepasste Workflowaufgabe
für jeden Datensatz auf.
64
© Copyright IBM Corp. 2011, 2016
Transformations-XML im Content Manager speichern
Nachdem Sie die Transformations-XML definiert haben, können Sie sie im Dateisystem speichern und in den Content Manager von TRIRIGA hochladen. Die
Transformations-XML kann anschließend mit einer ETL-Entwicklungsumgebung
getestet werden.
Vorgehensweise
1. Öffnen Sie das Navigationselement für Ihr Transformationsgeschäftsobjekt. Bearbeiten Sie ein vorhandenes Transformationsgeschäftsobjekt oder fügen Sie ein
neues hinzu.
2. Verwenden Sie das Binärfeld, um die Transformations-XML in den Content Manager von TRIRIGA hochzuladen.
3. Aktualisieren Sie bei Bedarf weitere Felder.
4. Speichern Sie den Transformationsdatensatz.
Workflowlaufzeitumgebung konfigurieren
Nachdem Sie die Transformations-XML in den Content Manager von TRIRIGA
hochgeladen haben, können Sie einen Zeitplan für die Ausführung des Workflows
konfigurieren. Der Workflow iteriert durch alle Transformationsgeschäftsobjektdatensätze und ruft die angepasste Workflowaufgabe für jeden Datensatz auf.
Vorgehensweise
1. Der Workflow ruft Datensätze für das Transformationsgeschäftsobjekt ab.
2. Der Workflow bestimmt die Datensätze, die an die angepasste Workflowaufgabe gesendet werden sollen.
3. Der Workflow iteriert durch die aufrufende angepasste Workflowaufgabe für jeden Datensatz. Der Klassenname muss
com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL sein.
4. Die angepasste Workflowaufgabe führt die folgenden Aktionen aus:
a. Sie lädt die Transformations-XML aus dem Content Manager in eine temporäre Datei.
b. Sie erfasst alle Felder im Geschäftsobjekt und erstellt eine Variable, die an
das ETL-Tool übergeben werden soll. Für Datums- und Datums- und Zeitformate ist eine spezielle Verarbeitung erforderlich.
c. Sie erstellt die ETL-Umgebung.
d. Sie setzt die TRIRIGA-Verbindung auf das JNDI des lokalen Anwendungsservers.
e. Sie führt die Transformation mithilfe der ETL-API aus.
f. Sie gibt "false" an den Workflow zurück, wenn während der Verarbeitung
ein Fehler auftritt, andernfalls "true".
Angepasste ETL-Workflowaufgabenspezifikation ausführen
Der Workflow iteriert durch alle Transformationsgeschäftsobjektdatensätze und ruft
die angepasste Workflowaufgabe für jeden Datensatz auf. Die angepasste Workflowaufgabe enthält eine definierte Spezifikation.
Wenn die angepasste Workflowaufgabe für jedes Transformationsgeschäftsobjekt
aufgerufen wird, werden die im Objekt enthaltenen Felder wie folgt verarbeitet:
1. Das Feld triTransformBI ist erforderlich und enthält die Referenz auf die XMLTransformationsdatei, die Sie ausführen möchten.
2. Das Feld triBONamesTX, sofern vorhanden, wird als durch Kommas getrennte
Liste von Geschäftsobjektnamen geparst. Die angepasste Workflowaufgabe erKapitel 2. Datenstrukturen
65
stellt Variablen mit dem Format ${BO.<Geschäftsobjektname>.TableName}. Wenn
das Feld beispielsweise "triBuilding" enthält, ist im ETL-Script eine Variable
${BO.triBuilding.TableName} verfügbar. Diese Variable enthält den Namen der
tatsächlichen Datenbanktabelle, in der die triBuilding-Datensätze gespeichert
sind. Da Geschäftsobjektnamen möglicherweise nicht eindeutig sind, können
Sie das Modul im Format <Modulname>::<Geschäftsobjektname> angeben, woraufhin eine entsprechende Variable
${BO.<Modulname>::<Geschäftsobjektname>.TableName} erstellt wird. "Location::triBuilding" ist beispielsweise als Variable ${BO.Location::triBuilding.TableName} im
ETL-Script verfügbar.
3. Das Feld triModuleNamesTX, sofern vorhanden, wird als durch Kommas getrennte Liste von Modulnamen geparst. Die angepasste Workflowaufgabe erstellt Variablen mit dem Format ${Module.<Modulname>.ViewName}.
66
© Copyright IBM Corp. 2011, 2016
Kapitel 3. Metriken
Eine Metrik ist eine betriebliche Zielsetzung, die Sie messen möchten. Alle TRIRIGA-Metriken verwenden dieselbe Metriktechnologie und dieselben Daten, aber
verschiedene Metriken sind für verschiedene Zwecke bestimmt.
Metriken können den folgenden beiden Zwecken zugeordnet werden:
Leistungsmetriken
Metriken, die die Verarbeitungsleistung messen, um Aktionen zu identifizieren, die zur Verbesserung ausgeführt werden können. Gewöhnlich handelt es sich bei den Messungen um Verhältnisse, Prozentsätze und Scores.
Leistungsmetriken haben Ziele, Schwellenwerte, Aktionsbedingungen, Abrechenbarkeitsunterstützung und Aktionsaufgaben.
Analyse- und Berichtsmetriken
Informationen für allgemeine Berichte oder für die weitere Analyse einer
zugehörigen Leistungsmetrik. Diese Informationen sind für die Dimensionsanalyse und Navigation hilfreich. Deshalb werden die Metrikfunktionen
der Leistungsmanagementanwendung verwendet. Analyse- und Berichtsmetriken haben keine Ziele, Schwellenwerte, Aktionsbedingungen, Abrechenbarkeitsunterstützung und Aktionsaufgaben. Die Schlüsselmetrikwerten für die Felder Ergebnisse, Ziel und Status sind für diesen Metriktyp
leer.
Weitere Informationen finden Sie in der Veröffentlichung IBM TRIRIGA 10 Workplace Performance Management Benutzerhandbuch.
Metrikberichte
Metrikberichte verwenden die Dimensionen und Faktfelder, die in den Fakttabellen
definiert sind, um eine bestimmte Metrikberechnung darzustellen. In Metrikberichten werden Ergebniswerte für eine einzelne Metrik angezeigt.
Die Sammlungen von Metrikberichten für die Rolle jedes Benutzers werden auf der
Homepage des Portals und im Leistungsmanager angezeigt.
Bearbeiten oder ändern Sie die mitgelieferten Metrikberichte nicht, wenn Sie die
TRIRIGA-Software für die Umgebung Ihres Unternehmens anpassen. Erstellen Sie
stattdessen einen abgeleiteten Metrikbericht, indem Sie einen vorhandenen Metrikbericht kopieren, die Kopie umbenennen und diese bearbeiten oder indem Sie einen vollständig neuen Metrikbericht erstellen. Zum Anzeigen der Metrikberichte
klicken Sie auf Eigene Berichte > Systemberichte und setzen den Filter "Modul"
auf "triMetricFact", den Filter "Anzeigetyp" auf "Metrik" und den Filter "Name" auf
"Metrik". Wenn Sie die tabellarischen Metrikberichte zu den grafischen Metrikberichten anzeigen möchten, setzen Sie den Filter "Name" auf "Zugehörige Berichte".
Jeder Metrikbericht setzt sich aus den folgenden Elementen zusammen:
Drillpfade
Eine spezielle Berichtsfunktion, die hierarchische Dimensionen nutzt und
Berichtsbenutzern die Möglichkeit bietet, sich in einer Hierarchie nach
oben und nach unten zu bewegen.
© Copyright IBM Corp. 2011, 2016
67
Filter
Filter bieten Berichtsbenutzern die Möglichkeit, die in einem Bericht dargestellten Daten zu ändern oder zu filtern.
Metrikberechnung
Die Metrik, die im Hauptfokus des Berichts steht.
Zugehörige Berichte
In diesen Berichten werden mehr und möglicherweise nicht metrische Daten für einen Metrikbericht angezeigt.
Weitere Informationen finden Sie in der Veröffentlichung IBM TRIRIGA Application
Platform 3 Berichte Benutzerhandbuch.
Schlüsselmetriken
Das Portal "Scorecard" enthält Abschnitte mit Schlüsselmetriken, in denen mehrere
Metriken in einer einzigen Ansicht erfasst werden.
Bearbeiten oder ändern Sie die mitgelieferten Schlüsselmetriken nicht, wenn Sie
TRIRIGA für Ihre Organisation anpassen. Erstellen Sie stattdessen abgeleitete
Schlüsselmetriken, indem Sie eine mitgelieferte Schlüsselmetrik kopieren, die Kopie
umbenennen und die Kopie bearbeiten. Sie können auch einen vollständig neuen
Portalabschnitt mit Schlüsselmetriken erstellen.
Die Verwendung des Scorecard-Builders, Portal-Builders und Navigationsbuilders
zum Konfigurieren eines Portals ist in der Veröffentlichung IBM TRIRIGA Application Platform 3 Benutzererlebnis Benutzerhandbuch dokumentiert.
Tipps:
v Geben Sie auf der Registerkarte Abfragen des Formulars "Scorecard" alle Abfragen an, die in diesem Portalabschnitt "Schlüsselmetriken" im Abschnitt "Ausgewählte Abfragen" angezeigt werden sollen.
v Wenn Sie die Scorecard in ein Navigationselement einschließen, geben Sie den
Standardbericht an.
v Die Antwortzeit, die Benutzer erleben, wenn sie sich in ihrem Homeportal und
Leistungsmanager bewegen, kann variieren. Die Antwortzeit steht in direkter Beziehung zur Anzahl der Metriken, die in die Scorecard eingeschlossen werden,
und zum Datenvolumen, das hinter jeder Metrik steht. Je präziser die Filter sind,
desto besser ist die Leistung.
Formularmetriken
Eine alternative Methode für die Anzeige von Metriken ist die Verwendung einer
Formularansicht.
Die Anzeige von Metriken in einem Formular wird durch die Definition eines Abfrageabschnitts in einem Formular erreicht, wobei die Abfrage in einer Metrikabfrage referenziert wird. Die von der Metrikabfrage ausgewählten Daten können so
gefiltert werden, dass die Daten basierend auf dem übergeordneten Datensatz, in
dem das Formular angezeigt wird, angezeigt werden. Beim Umschalten zugehöriger Berichte können die Abfragen, die auf Benutzeraktionen basieren, ausgetauscht
werden.
68
© Copyright IBM Corp. 2011, 2016
Definieren Sie zur Designzeit eine Metrikabfrage mit den Filtern $$RECORDID$$ und
$$PARENT::[Abschnitt]:: [Feld]$$. Zur Laufzeit filtert der übergeordnete Datensatz, in dem das Formular angezeigt wird, die von der Metrikabfrageengine zur
Anzeige augewählten Daten implizit.
Sie können weitere Metrikabfragen als zugehörige Berichte definieren. Zur Laufzeit, wenn die Metrikabfrage in einem formularbezogenen Bericht angezeigt wird,
kann der Benutzer über die Umschaltsteuerung die angezeigte Abfrage austauschen.
Datenfilterung
Bevor Metriken in einem Formular angezeigt werden, werden die Daten gefiltert.
Zur Laufzeit werden vor der Ausführung der Abfrage folgende Aktionen ausgeführt:
v Der Filter $$RECORDID$$ wird durch die Datensatz-ID des übergeordneten Datensatzes ersetzt, in dem das Formular angezeigt wird.
v Ein Filter $$PARENT::[Abschnitt]::[Feld]$$ wird in den definierten Wert des
übergeordneten Datensatzfelds aufgelöst.
v Wenn ein Metrikfilter außerhalb eines übergeordneten Datensatzes angezeigt
wird, werden alle Filter, die übergeordnete Datensätze berücksichtigen, wie z. B.
$$RECORDID$$ und $$PARENT::[Abschnitt]::[Feld]$$, ignoriert.
Definieren Sie die Filter $$RECORDID$$ und $$PARENT::[Abschnitt]::[Feld]$$ für
die Felder, die als Drillpfad in der Fakttabelle definiert sind. Die Metrik, die für ein
Programm oder eine Klassifikation gefiltert wird, und die diese Filter verwendet,
funktioniert ähnlich wie die Auswahl in der Drillpfadliste. Außerdem filtert sie die
Einträge nach dem angegebenen Datensatz und schließt alle untergeordneten Elemente dieses Datensatzes ein.
Wenn ein Wert für den Filter $$PARENT::[Abschnitt]::[Feld]$$ in einem hierarchischen Filter angegeben wird, ist ein übergeordnetes Feld mit Nullwert gleichbedeutend mit der Auswahl des Stammknotens des Drillpfads. Außerdem werden alle
Datensätze eingeschlossen, die dem Stammwert entsprechen. Ein nicht hierarchischer Filter verhält sich ähnlich wie ein Abfragefilter für Geschäftsobjekte und filtert die Einträge nach Datensätzen mit Nullwert, wenn der übergeordnete Feldwert
null ist.
Die Filter $$RECORDID$$ und $$PARENT::[Abschnitt]::[Feld]$$ verhalten sich abgesehen davon, dass ihr Wert vom übergeordneten Datensatz übergeben wird, wie
Laufzeitfilter.
Wenn eine Metrikabfrage die Filter $$RUNTIME$$ und
$$PARENT::[Abschnitt]::[Feld]$$ enthält, die für dasselbe Feld definiert sind,
wird bei der Anzeige der Abfrage in einem Formular das Filtersteuerelement
$$RUNTIME$$ nicht verwendet. Stattdessen wird der Wert von
$$PARENT::[Abschnitt]::[Feld]$$ als Filterwert verwendet.
Unterberichte
Formularberichte können tabellarische und grafische Unterberichte enthalten.
Ein tabellarischer Unterbericht definiert einen zugehörigen Bericht des Leistungsmanagers. In einem nicht tabellarischen Unterbericht wird ein Metrikdiagramm
dargestellt, das innerhalb des Formulars gewechselt werden kann.
Kapitel 3. Metriken
69
Dem Abschnitt "Unterberichte" einer Metrikabfrage können tabellarische und grafische Berichte hinzugefügt werden. Zur Laufzeit zeigt ein Leistungsmanager nur tabellarische Berichte als zugehörige Berichte an, und eine Metrik in einem Formularabfrageabschnitt enthält nur grafische Berichte als Optionen für die
Austauschsteuerelemente im Abschnitt "Unterberichte".
Der Typ des Unterberichts (z. B. Metrik, Abfrage oder Bericht) wird im Abschnitt
"Unterberichte" des Berichtsbuilders angezeigt. Für Metrikabfragen ist das Flag "Tabellenausgabe" verfügbar.
Eine Metrikabfrage kann weitere Metrikabfragen als Unterberichte anzeigen.
70
© Copyright IBM Corp. 2011, 2016
Kapitel 4. Hierarchieflattener
Die Definition einer Hierarchie in TRIRIGA Application Platform bietet Flexibilität
für Implementierungen mit multiplen Permutationen Datenhierarchien, z. B. Organisationen. Die Berichtstools bevorzugen jedoch eine strukturiertere Datenzusammenfassung, um die Berichterstellung zu vereinfachen und die Leistung zu maximieren.
Mithilfe des Hierarchieflatterners kann ein Administrator eine Gruppe benannter
Strukturen definieren, die von der Engine für TRIRIGA-Metrikberichte verwendet
werden, um die hierarchischen Daten im System schnell zu verarbeiten. Die resultierende Struktur wird als flache Hierarchie bezeichnet, und diese Strukturen werden in Metrikberichten verwendet.
Administratoren verwenden den Jobplaner mit Unterstützung von ETL-Jobelementen, um den Hierarchieflattenerprozess auszuführen. Systementwickler lösen den
Prozess mithilfe einer angepassten Workflowaufgabe aus. In diesem wird folgender
Klassenname für die Ausführung des Hierarchieflattenerprozesses verwendet:
com.tririga.platform.workflow.runtime.taskhandler.flathierarchy.
RebuildFlatHierarchies
Die Auslösung des Prozesses mit einer angepassten Workflowaufgabe ist in der
Veröffentlichung Erstellung von Anwendungen für IBM TRIRIGA Application Platform
3 beschrieben.
Wichtig: Jedes Mal, wenn eine Hierarchie in TRIRIGA geändert wird, wird der Hierarchiebaum sofort aktualisiert. Angenommen, Sie fügen einen neuen triBuildingEintrag hinzu. In diesem Fall wird die Standorthierarchie aktualisiert. Die entsprechende flache Hierarchie für triBuilding wird jedoch erst aktualisiert, wenn Sie sie
mit dem Jobelement "Hierarchie neu erstellen" neu erstellen. Deshalb ist es wichtig,
Jobelemente des Typs "Hierarchie neu erstellen" so zu planen, dass sie zu derselben
Zeit ausgeführt werden wie die Erfassung von TRIRIGA Workplace Performance
Management-Daten über Fakttabellen. Jobelemente des Typs "Hierarchie neu erstellen" stellen sicher, dass die Informationen auf dem neusten Stand bleiben.
Flache Hierarchien
Hierarchiestrukturdefinitionen hängen davon ab, worauf die Abflachung basiert.
Die flache Hierarchie kann auf den Standardbeziehungen zwischen übergeordneten
und untergeordneten Elementen für die Hierarchie eines angegebenen Moduls basieren. Die flache Hierarchie kann auch auf bestimmten Ebenen in der Modulhierarchie und deren Geschäftsobjekten basieren.
Jede Hierarchiestrukturdefinition enthält einen einzigen Headerdatensatz, in dem
der Hierarchiename, das Modul und der Hierarchietyp angegeben sind. Der Hierarchiename beschreibt die Hierarchie, und das Modul ist das Modul, das von der
Hierarchie dargestellt wird. Der Hierarchietyp wird vom Abflachungsprozess verwendet, um festzustellen, wie die Daten abgeflacht werden müssen. Es gibt zwei
Hierarchietypen: Daten und Formular.
Eine Datenhierarchie wird verwendet, um den Pfad der Daten basierend auf den
Standardbeziehungen zwischen übergeordneten und untergeordneten Elementen
für die Hierarchie des angegebenen Moduls abzuflachen. Dieser Hierarchietyp hat
© Copyright IBM Corp. 2011, 2016
71
keine benannten Ebenen, weil TRIRIGA Application Platform-Anwendungen die
Darstellung verschiedener Datentypen auf derselben physischen Ebene in der Hierarchie eines Moduls zulassen. Eine Lokationshierarchie kann beispielsweise Daten
für Liegenschaft, Gebäude und Geschoss sowie für Gebäude und Geschoss haben.
In diesem Fall enthält die erste Ebene der Hierarchie eine Mischung von Liegenschaften und Gebäuden und die zweite Ebene eine Mischung von Gebäuden und
Geschossen.
Eine Formularhierarchie wird verwendet, um den Pfad der Daten basierend auf
den Beziehungen zwischen übergeordneten und untergeordneten Elementen für
die Hierarchie des angegebenen Moduls und den Geschäftsobjekten, die Ebenen
darstellen, abzuflachen. Auf jeder Ebene kann nur ein einziges Geschäftsobjekt dargestellt werden.
Jede Formularhierarchie muss explizite Ebenen angeben, die die Ebenennummer,
das von der Ebene dargestellte Geschäftsobjekt und den Typ enthalten. Der Typ
wird vom Abflachungsprozess verwendet, um festzustellen, wie die Daten für die
Ebene abgeflacht werden müssen. Es gibt drei Typoptionen: Find, Ignore und Recurse.
v Wenn Find als Typwert definiert ist, durchsucht das System die untergeordneten
Ebenen der Instanzdaten nach einen bestimmten Thread, bis ein Datensatz für
das angegebene Formular gefunden wird. Wenn keine Datensätze gefunden werden, werden die verbleibenden Ebenen in der Hierarchiedefinition ignoriert und
keine weiteren flachen Daten für diesen Thread erstellt. Wenn ein Datensatz gefunden wird, erstellt das System einen flachen Datensatz für diesen Knoten und
fährt mit der nächsten Ebene in der Definition fort. Dieser Modus bietet Ihnen
die Möglichkeit, eine Baumstruktur zu komprimieren, um Ihre Geschäftsdaten
besser auszurichten.
v Wenn Ignore als Typwert festgelegt ist, sucht das System nach dem angegebenen
Formular auf einer Ebene unterhalb der letzten übergeordneten Ebene. Wenn
kein Datensatz gefunden wird, erstellt das System eine Lücke für diese Ebene
und fährt mit der nächsten Ebene in der Definition fort. Wenn ein Datensatz gefunden wird, erstellt das System einen flachen Datensatz für diesen Knoten und
fährt mit der nächsten Ebene in der Definition fort. Dieser Modus bietet Ihnen
die Möglichkeit, eine Baumstruktur zu erweitern, um Ihre Geschäftsdaten besser
auszurichten. Zur Vereinfachung des Berichterstellungsprozesses müssen Sie den
Lücken einen Namen oder eine Bezeichnung zuordnen. Verwenden Sie für diesen Zweck den Wert im Feld Gap Label im Manager für hierarchische Strukturen (Hierarchy Structure Manager).
v Wenn Recurse als Typwert definiert ist, durchsucht das System die untergeordneten Ebenen der Instanzdaten nach einen bestimmten Thread, bis ein Datensatz
für das angegebene Formular gefunden wird. Wenn keine Datensätze gefunden
werden, werden die verbleibenden Ebenen in der Hierarchiedefinition ignoriert
und keine weiteren flachen Daten für diesen Thread erstellt. Das System erstellt
für jeden gefundenen Datensatz einen flachen Datensatz für diesen Knoten, bevor es mit der nächsten Ebene in der Definition fortfährt.
Beispiele für flache Hierarchien
Sie können die Beispiele für flache Hierarchien verwenden, um sich eingehender
mit der Struktur einer flachen Hierarchiedefinition vertraut zu machen.
Beispielheaderdatensätze für flache Hierarchien
Die folgende Tabelle enthält Beispiele für flache Hierarchien, die auf Modulen innerhalb von Hierarchien basieren:
72
© Copyright IBM Corp. 2011, 2016
Tabelle 13. Beispielheaderdatensätze
Hierarchiename
Modul
Hierarchietyp
Flächenhierarchie
Lokation
GUI
Landhierarchie
Lokation
GUI
Städtehierarchie
Geografie
GUI
Vollständige
Lokationshierarchie
Lokation
Daten
Vollständige
Organisationshierarchie
Organisation
Daten
Interne
Organisationshierarchie
Organisation
GUI
Externe
Organisationshierarchie
Organisation
GUI
Beispielebenendatensätze für flache Hierarchien
Die folgende Tabelle enthält Beispiele für flache Hierarchien, die auf Ebenen innerhalb von Hierarchien basieren:
Tabelle 14. Beispielebenendatensätze für flache Hierarchien
Hierarchiename
Nummer der Ebene
Formular
Find-Modul
Flächenhierarchie
1
Liegenschaft
Ignore
Flächenhierarchie
2
Gebäude
Find
Flächenhierarchie
3
Geschoss
Find
Flächenhierarchie
4
Fläche
Recurse
Interne
1
Organisationshierarchie
Firma
Find
Interne
2
Organisationshierarchie
Unternehmensbereich Ignore
Interne
3
Organisationshierarchie
Abteilung
Recurse
Manager für hierarchische Strukturen
Sie definieren Hierarchien und Versionsinformationen mithilfe des Managers für
hierarchische Strukturen (Hierarchy Structure Manager). Der Manager für hierarchische Strukturen ist eine zentrale Schnittstelle für das Erstellen, Aktualisieren
und Löschen flacher Hierarchien.
Auf hierarchische Strukturen zugreifen
Wenn Sie Hierarchien hinzufügen, ändern oder löschen möchten, müssen Sie auf
die Funktionalität für Hierarchiestrukturen zugreifen.
Vorgehensweise
1. Klicken Sie auf Tools > Builder-Tools > Datenmodellierer.
2. Klicken Sie auf Dienstprogramme.
3. Klicken Sie auf Hierarchiestrukturen.
Kapitel 4. Hierarchieflattener
73
Datenhierarchie erstellen
Eine Datenhierarchie wird verwendet, um den Pfad der Daten basierend auf den
Standardbeziehungen zwischen übergeordneten und untergeordneten Elementen
für die Hierarchie des angegebenen Moduls abzuflachen. Wenn Sie eine Datenhierarchie erstellen, sind keine benannten Ebenen erforderlich, weil verschiedene Datentypen auf derselben physischen Ebene in der Hierarchie eines Moduls dargestellt werden können.
Vorgehensweise
1. Klicken Sie auf Create Hierarchy.
2. Geben Sie im Feld Name einen Namen ein, der beschreibt, was die Hierarchie
darstellt.
3. Wählen Sie in der Liste Module das relevante Modul für die Datenhierarchie
aus.
4. Wählen Sie in der Liste Hierarchy Type den Eintrag Data aus.
5. Klicken Sie auf Create.
6. Klicken Sie auf Save und dann auf Close.
Formularhierarchie erstellen
Eine Formularhierarchie wird verwendet, um den Pfad der Daten basierend auf
den Beziehungen zwischen übergeordneten und untergeordneten Elementen für
die Hierarchie des angegebenen Moduls und den Geschäftsobjekten, die Ebenen
darstellen, abzuflachen. Wenn Sie eine Formularhierarchie erstellen, kann auf jeder
Ebene nur ein einziges Geschäftsobjekt dargestellt werden.
Vorgehensweise
1. Klicken Sie auf Create Hierarchy.
2. Geben Sie im Feld Name einen Namen ein, der beschreibt, was die Hierarchie
darstellt.
3. Wählen Sie in der Liste Module das für die Formularhierarchie relevante Modul aus.
4. Wählen Sie in der Liste Hierarchy Type den Eintrag Form aus.
5. Klicken Sie auf Create. Der Abschnitt "Levels" erscheint. Geben Sie Information für das Formular der Ebene 1 ein.
6. Wählen Sie in der Liste Business Object das relevante Geschäftsobjekt aus.
7. Wählen Sie in der Liste Form das relevante Formular aus.
8. Wählen Sie in der Liste Type den Eintrag Find aus. Das Feld Gap Label enthält die Beschriftung, die angegeben wird, wenn Ignore in der Liste Type ausgewählt und kein Datensatz gefunden wird.
9. Klicken Sie auf Save.
10. Fahren Sie mit der Eingabe und dem Speichern der Informationen fort, bis alle
Ebenen definiert sind.
11. Klicken Sie auf Save und dann auf Close.
74
© Copyright IBM Corp. 2011, 2016
Kapitel 5. Fakttabellen
Fakttabellen setzen sich aus Messwerten, Metriken oder Fakten eines Geschäftsprozesses zusammen. In Fakttabellen werden die Daten gespeichert, die zur Berechnung der Metriken in Metrikberichten verwendet werden.
Die Informationen in Fakttabellen basieren auf den mitgelieferten Produkten TRIRIGA Workplace Performance Management und TRIRIGA Real Estate Environmental Sustainability. Die Implementierung in Ihrer Firma kann anders sein.
Jede Fakttabelle hat einen ETL-Prozess zum Laden von Daten und einen weiteren
ETL-Prozess zum Löschen von Daten. Die Namen der ETL-Prozesse, die Daten löschen, enden mit "– Löschen", z. B. Fakttabelle für Gebäudekosten - Löschen.
Zum Anzeigen der ETL-Prozesse klicken Sie auf Tools > Systemkonfiguration >
ETL-Jobelemente.
Liste der unterstützten Fakttabellen und Metriken
Sie können die Liste der Fakttabellen und Metriken referenzieren, die in der TRIRIGA-Implementierung in Ihrem Unternehmen unterstützt werden.
Auf Fakttabellen zugreifen
Klicken Sie auf Tools > Builder-Tools > Datenmodellierer.
Suchen Sie die Fakttabelle triMetricFact und wählen Sie sie aus, um die Liste der
Geschäftsobjekte für die Fakttabelle sichtbar zu machen.
Auf Metriken zugreifen
Klicken Sie auf Tools > Builder-Tools > Report Manager > Systemberichte.
Filtern Sie Daten nach Geschäftsobjekt und Modul, um die Metrikinformationen
zu sortieren und die relevante Liste von Berichten anzufordern.
Tipp: #FM# bedeutet, dass eine Metrik auch als Formularmetrik im System vorhanden ist.
Fakten, die spezielle Staging-Tabellen und ETL-Prozesse erfordern
Bei den meisten Fakttabellen ist das Laden der gespeicherten Daten zur Berechnung von Metriken einfach. Einige Fakttabellen erfordern jedoch spezielle StagingTabellen und ETL-Prozesse zur Unterstützung des Ladeprozesses.
In der folgenden Tabelle sind die Fakten aufgelistet, die spezielle Staging-Tabellen
und ETL-Prozesse erfordern:
Tabelle 15. Fakten, die spezielle Staging-Tabellen und ETL-Prozesse erfordern
Name der Fakttabelle
Geschäftsobjekt für Fakttabelle
Finanzzusammenfassung
triFinancialSummary
Vorgabezeit
triStandardHours
© Copyright IBM Corp. 2011, 2016
75
Tabelle 15. Fakten, die spezielle Staging-Tabellen und ETL-Prozesse erfordern (Forts.)
Name der Fakttabelle
Geschäftsobjekt für Fakttabelle
Vorgabezeitdetails
triStandardHoursDetails
Fakttabelle für stündliche Assetanalyse
triAssetAnalyticHFact
Fakttabelle für täglichen Energieverbrauch
des Assets
triAssetEnergyUseDFact
Fakttabelle für stündlichen Energieverbrauch triAssetEnergyUseHFact
des Assets
Fakttabelle für monatlichen Energieverbrauch des Assets
triAssetEnergyUseMFact
Abhängige ETL-Prozesse
Einige ETL-Prozesse sind in Bezug auf den Ladeprozess von anderen ETL-Prozessen abhängig.
In der folgenden Tabelle sind die ETL-Prozesse aufgeführt, die von anderen ETLProzessen abhängig sind:
Tabelle 16. Abhängige ETL-Prozesse
76
Name der Fakttabelle
Geschäftsobjekt für Fakttabelle
ETL-Prozess für das Laden der Fakttabelle
für Gebäudekosten
Dieser ETL-Prozess ist von der Verfügbarkeit
von Daten in der
Finanzzusammenfassungstabelle abhängig.
Die Finanzzusammenfassungstabelle kann
durch Back-End-Integration mit Ihrem
Finanzsystem oder mithilfe des OfflineExcel-Prozesses für Finanzzusammenfassung
geladen werden. Zur Vereinfachung des Offline-Excel-Prozesses für
Finanzzusammenfassung gibt es einen speziellen ETL-Prozess, der die Daten mit einer
Push-Operation aus dem Offline-Excel-Prozess in die Finanzzusammenfassungstabelle
überträgt. In dem gelieferten Produkt
TRIRIGA Workplace Performance Management haben die speziellen ETL-Prozesse die
Namen "Finanzzusammenfassung aus Offline-Staging-Tabelle laden" und
"Finanzzusammenfassung aus OfflineStaging-Tabelle löschen". Wenn Sie
Finanzzusammenfassungsdaten mit dem
Offline-Excel-Prozess für
Finanzzusammenfassung importieren, müssen Sie zuerst den ETL-Prozess
"Finanzzusammenfassung aus OfflineStaging-Tabelle laden" ausführen. Anschließend müssen Sie den ETL-Prozess für das
Laden der Fakttabelle für Gebäudekosten
ausführen.
© Copyright IBM Corp. 2011, 2016
Tabelle 16. Abhängige ETL-Prozesse (Forts.)
Name der Fakttabelle
Geschäftsobjekt für Fakttabelle
ETL-Prozess für das Laden der
Gebäudefakttabelle
Dieser ETL-Prozess ist von der Verfügbarkeit
von Daten in der
Finanzzusammenfassungstabelle abhängig.
Die Finanzzusammenfassungstabelle kann
durch Back-End-Integration mit Ihrem
Finanzsystem oder mithilfe des OfflineExcel-Prozesses für Finanzzusammenfassung
geladen werden. Zur Vereinfachung des Offline-Excel-Prozesses für
Finanzzusammenfassung gibt es einen speziellen ETL-Prozess, der die Daten mit einer
Push-Operation aus dem Offline-Excel-Prozess in die Finanzzusammenfassungstabelle
überträgt. In dem gelieferten Produkt
TRIRIGA Workplace Performance Management haben die speziellen ETL-Prozesse die
Namen "Finanzzusammenfassung aus Offline-Staging-Tabelle laden" und
"Finanzzusammenfassung aus OfflineStaging-Tabelle löschen". Wenn Sie
Finanzzusammenfassungsdaten mit dem
Offline-Excel-Prozess für
Finanzzusammenfassung importieren, müssen Sie zuerst den ETL-Prozess
"Finanzzusammenfassung aus OfflineStaging-Tabelle laden" ausführen. Anschließend müssen Sie den ETL-Prozess für das
Laden der Gebäudefakttabelle ausführen.
ETL-Prozess für das Laden der
Ressourcenfakttabelle
Abhängig vom ETL-Prozess für das Laden
der Vorgabezeit.
ETL-Prozess für das Laden der Vorgabezeit
Abhängig vom ETL-Prozess für das Laden
der Vorgabezeitdetails.
ETL-Prozess für die Tagesfakttabelle für
Assets
Diese ETL-Prozesse sind von der Verfügbarkeit von Daten in einer Staging-Tabelle abhängig. Die Staging-Tabellentypen müssen
generisch sein. Die Staging-Tabelle muss bestimmte Felder enthalten. Die Staging-Tabelle kann über die Back-End-Integration mit
dem Gebäudemanagementsystem geladen
werden. Die Staging-Tabelle kann auch mithilfe eines ETL-Prozesses geladen werden,
der die Daten aus einer externen Datenbank
importiert.
Weitere Einzelheiten, einschließlich StagingTabellen und Beispiel-ETL-Prozessen finden
Sie in der Service Management Library.
ETL-Prozess für die Stundenfakttabelle für
Assets
ETL-Prozess für die Monatsfakttabelle für
Assets
Kapitel 5. Fakttabellen
77
78
© Copyright IBM Corp. 2011, 2016
Bemerkungen
Die vorliegenden Informationen wurden für Produkte und Services entwickelt, die
auf dem deutschen Markt angeboten werden. IBM stellt dieses Material möglicherweise auch in anderen Sprachen zur Verfügung. Für den Zugriff auf das Material
in einer anderen Sprache kann eine Kopie des Produkts oder der Produktversion in
der jeweiligen Sprache erforderlich sein.
Möglicherweise bietet IBM die in dieser Dokumentation beschriebenen Produkte,
Services oder Funktionen in anderen Ländern nicht an. Informationen über die gegenwärtig im jeweiligen Land verfügbaren Produkte und Services sind beim zuständigen IBM Ansprechpartner erhältlich. Hinweise auf IBM Lizenzprogramme
oder andere IBM Produkte bedeuten nicht, dass nur Programme, Produkte oder
Services von IBM verwendet werden können. Anstelle der IBM Produkte, Programme oder Services können auch andere, ihnen äquivalente Produkte, Programme
oder Services verwendet werden, solange diese keine gewerblichen oder anderen
Schutzrechte von IBM verletzen. Die Verantwortung für den Betrieb von Produkten, Programmen und Services anderer Anbieter liegt beim Kunden.
Für in diesem Handbuch beschriebene Erzeugnisse und Verfahren kann es IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist
keine Lizenzierung dieser Patente verbunden. Lizenzanforderungen sind schriftlich
an folgende Adresse zu richten (Anfragen an diese Adresse müssen auf Englisch
formuliert werden):
IBM Director of Licensing
IBM Europe, Middle East & Africa
Tour Descartes
2, avenue Gambetta
92066 Paris La Defense
France
Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. Die hier enthaltenen Informationen werden in regelmäßigen Zeitabständen aktualisiert und als Neuausgabe veröffentlicht. IBM kann ohne weitere Mitteilung jederzeit Verbesserungen und/
oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/
oder Programmen vornehmen.
Verweise in diesen Informationen auf Websites anderer Anbieter werden lediglich
als Service für den Kunden bereitgestellt und stellen keinerlei Billigung des Inhalts
dieser Websites dar. Das über diese Websites verfügbare Material ist nicht Bestandteil des Materials für dieses IBM Produkt. Die Verwendung dieser Websites geschieht auf eigene Verantwortung.
Werden an IBM Informationen eingesandt, können diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenüber dem Einsender entsteht.
Lizenznehmer des Programms, die Informationen zu diesem Produkt wünschen
mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhängig
voneinander erstellten Programmen und anderen Programmen (einschließlich des
vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten
Informationen zu ermöglichen, wenden sich an folgende Adresse:
© Copyright IBM Corp. 2011, 2016
79
IBM Director of Licensing
IBM Corporation
North Castle Drive, MD-NC119
Armonk, NY 10504-1785
USA
Die Bereitstellung dieser Informationen kann unter Umständen von bestimmten
Bedingungen - in einigen Fällen auch von der Zahlung einer Gebühr - abhängig
sein.
Die Lieferung des in diesem Dokument beschriebenen Lizenzprogramms sowie des
zugehörigen Lizenzmaterials erfolgt auf der Basis der IBM Rahmenvereinbarung
bzw. der Allgemeinen Geschäftsbedingungen von IBM, der IBM Internationalen
Nutzungsbedingungen für Programmpakete oder einer äquivalenten Vereinbarung.
Die zitierten Leistungsdaten und Clientbeispiele dienen lediglich der Verdeutlichung. Die tatsächlichen Ergebnisse können je nach Konfiguration und Betriebsbedingungen variieren.
Alle Informationen zu Produkten anderer Anbieter stammen von den Anbietern
der aufgeführten Produkte, deren veröffentlichten Ankündigungen oder anderen
allgemein verfügbaren Quellen. IBM hat diese Produkte nicht getestet und kann
daher keine Aussagen zu Leistung, Kompatibilität oder anderen Merkmalen machen. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an
den jeweiligen Anbieter zu richten.
Aussagen über Pläne und Absichten von IBM unterliegen Änderungen oder können zurückgenommen werden und repräsentieren nur die Ziele von IBM.
Diese Veröffentlichung enthält Beispiele für Daten und Berichte des alltäglichen
Geschäftsablaufs. Sie sollen nur die Funktionen des Lizenzprogramms illustrieren
und können Namen von Personen, Firmen, Marken oder Produkten enthalten. Alle
diese Namen sind frei erfunden; Ähnlichkeiten mit tatsächlichen Namen und Adressen sind rein zufällig.
COPYRIGHTLIZENZ:
Diese Veröffentlichung enthält Beispielanwendungsprogramme, die in Quellensprache geschrieben sind und Programmiertechniken in verschiedenen Betriebsumgebungen veranschaulichen. Sie dürfen diese Beispielprogramme kostenlos kopieren,
ändern und verteilen, wenn dies zu dem Zweck geschieht, Anwendungsprogramme zu entwickeln, zu verwenden, zu vermarkten oder zu verteilen, die mit der
Anwendungsprogrammierschnittstelle für die Betriebsumgebung konform sind, für
die diese Beispielprogramme geschrieben werden. Diese Beispiele wurden nicht
unter allen denkbaren Bedingungen getestet. Daher kann IBM die Zuverlässigkeit,
Wartungsfreundlichkeit oder Funktion dieser Programme weder zusagen noch
gewährleisten. Die Beispielprogramme werden ohne Wartung (auf "as-is"-Basis)
und ohne jegliche Gewährleistung zur Verfügung gestellt. IBM übernimmt keine
Haftung für Schäden, die durch die Verwendung der Beispielprogramme entstehen.
Kopien oder Teile der Beispielprogramme bzw. daraus abgeleiteter Code müssen
folgenden Copyrightvermerk beinhalten:
© (Name Ihrer Firma) (Jahr).
Teile des vorliegenden Codes wurden aus Beispielprogrammen der IBM Corporation abgeleitet.
© Copyright IBM Corp._Jahr/Jahre angeben_.
80
© Copyright IBM Corp. 2011, 2016
Marken
IBM, das IBM Logo und ibm.com sind Marken oder eingetragene Marken der IBM
Corporation in den USA und/oder anderen Ländern. Weitere Produkt- und Servicenamen können Marken von IBM oder anderen Unternehmen sein. Eine aktuelle Liste der IBM Marken finden Sie auf der Webseite "Copyright and trademark
information" unter www.ibm.com/legal/copytrade.shtml.
Java™ und alle auf Java basierenden Marken und Logos sind Marken oder eingetragene Marken der Oracle Corporation und/oder ihrer verbundenen Unternehmen.
Linux ist eine Marke von Linus Torvalds in den USA und/oder anderen Ländern.
Microsoft, Windows, Windows NT und das Windows-Logo sind Marken der Microsoft Corporation in den USA und/oder anderen Ländern.
UNIX ist eine eingetragene Marke von The Open Group in den USA und anderen
Ländern.
Weitere Produkt- und Servicenamen können Marken von IBM oder anderen Unternehmen sein.
Nutzungsbedingungen für die Produktdokumentation
Die Berechtigung zur Nutzung der Veröffentlichungen wird Ihnen auf Basis der
folgenden Bedingungen gewährt.
Anwendbarkeit
Diese Bedingungen sind eine Ergänzung der Nutzungsbedingungen auf der IBM
Website.
Persönliche Nutzung
Sie dürfen diese Veröffentlichungen für Ihre persönliche, nicht kommerzielle Nutzung unter der Voraussetzung vervielfältigen, dass alle Eigentumsvermerke erhalten bleiben. Sie dürfen diese Veröffentlichungen oder Teile der Veröffentlichungen
ohne ausdrückliche Genehmigung von IBM nicht weitergeben, anzeigen oder abgeleitete Werke davon erstellen.
Kommerzielle Nutzung
Sie dürfen diese Veröffentlichungen nur innerhalb Ihres Unternehmens und unter
der Voraussetzung, dass alle Eigentumsvermerke erhalten bleiben, vervielfältigen,
weitergeben und anzeigen. Sie dürfen diese Veröffentlichungen oder Teile der Veröffentlichungen ohne ausdrückliche Genehmigung von IBM außerhalb Ihres Unternehmens weder vervielfältigen, weitergeben oder anzeigen noch abgeleitete Werke
davon erstellen.
Rechte
Abgesehen von den hier gewährten Berechtigungen erhalten Sie keine weiteren Berechtigungen, Lizenzen oder Rechte (veröffentlicht oder stillschweigend) in Bezug
auf die Veröffentlichungen oder darin enthaltene Informationen, Daten, Software
oder geistiges Eigentum.
Bemerkungen
81
IBM behält sich das Recht vor, die hierin gewährten Berechtigungen nach eigenem
Ermessen zurückzuziehen, wenn sich die Nutzung der Veröffentlichungen für IBM
als nachteilig erweist oder wenn die obigen Nutzungsbestimmungen nicht genau
befolgt werden.
Sie dürfen diese Informationen nur in Übereinstimmung mit allen anwendbaren
Gesetzen und Verordnungen, einschließlich aller US-amerikanischen Exportgesetze
und Verordnungen, herunterladen und exportieren.
IBM übernimmt keine Gewährleistung für den Inhalt dieser Informationen. Diese
Veröffentlichungen werden auf der Grundlage des gegenwärtigen Zustands (auf
"as-is"-Basis) und ohne eine ausdrückliche oder stillschweigende Gewährleistung
für die Handelsüblichkeit, die Verwendungsfähigkeit für einen bestimmten Zweck
oder die Freiheit von Rechten Dritter zur Verfügung gestellt.
IBM Online-Datenschutzerklärung
IBM Softwareprodukte, einschließlich Software as a Service-Lösungen ("Softwareangebote"), können Cookies oder andere Technologien verwenden, um Informationen
zur Produktnutzung zu erfassen, die Endbenutzererfahrung zu verbessern und Interaktionen mit dem Endbenutzer anzupassen oder zu anderen Zwecken. In vielen
Fällen werden von den Softwareangeboten keine personenbezogenen Daten erfasst.
Einige der IBM Softwareangebote können Sie jedoch bei der Erfassung personenbezogener Daten unterstützen. Wenn dieses Softwareangebot Cookies zur Erfassung
personenbezogener Daten verwendet, sind nachfolgend nähere Informationen über
die Verwendung von Cookies durch dieses Angebot zu finden.
Dieses Softwareangebot verwendet keine Cookies oder andere Technologien zur Erfassung personenbezogener Daten.
Wenn die für dieses Softwareangebot genutzten Konfigurationen Sie als Kunde in
die Lage versetzen, personenbezogene Daten von Endbenutzern über Cookies und
andere Technologien zu erfassen, müssen Sie sich zu allen gesetzlichen Bestimmungen in Bezug auf eine solche Datenerfassung, einschließlich aller Mitteilungspflichten und Zustimmungsanforderungen, rechtlich beraten lassen.
Weitere Informationen zur Nutzung verschiedener Technologien, einschließlich
Cookies, für diese Zwecke finden Sie in in Schwerpunkten der IBM Online-Datenschutzerklärung unter http://www.ibm.com/privacy in der "IBM Online-Datenschutzerklärung" unter http://www.ibm.com/privacy/details im Abschnitt "Cookies, Web-Beacons und sonstige Technologien" und unter "IBM Software Products
and Software-as-a-Service Privacy Statement"
(http://www.ibm.com/software/info/product-privacy/).
82
© Copyright IBM Corp. 2011, 2016
Bemerkungen
83
IBM®
Gedruckt in Deutschland
Herunterladen