Änderungsjournal exportieren

1                     Themenübersicht

Das Änderungsjournal ist eine Protokollfunktion für die Historie von betriebs-wirtschaftlichen Größen und zeichnet Ereignisse im Lebenszyklus von Business Entitys auf. Pro Business Entity und Datenbank-Instanz kann festgelegt werden, ob Änderungen protokolliert werden sollen.

Mit dem Änderungsjournal können beispielsweise Änderungen an Stammdaten lückenlos dokumentiert werden und sind daher einfach nachzuvollziehen. Das Änderungsjournal wird mithilfe der Anwendung Änderungsjournal aktivieren für beliebige Business Entitys aktiviert.

Die Aufzeichnungen des Änderungsjournals können über die Programmierschnittstelle des Änderungsjournals abgefragt werden. Der Export des Änderungsjournals nutzt diese Schnittstellen und erstellt daraus eine Datei.

Ein Hauptteil dieses Dokuments widmet sich dem Aufbau der verwendeten Datenstruktur. Zusätzlich werden Besonderheiten im Zusammenhang mit dem Export aufgeführt.

2                     Zielgruppe

  • Administratoren
  • Technische Berater

3                     Datenstruktur

Die Exportdatenstruktur des Änderungsjournals verwendet die Informationen der Programmierschnittstelle zum Änderungsjournal. Diese ist in dem Dokument Änderungsjournal beschrieben. Die Exportdaten können die Änderungen von mehreren Business Entity Instanzen umfassen. Zu jeder Business Entity Instanz sind die geänderten Dependent Instanzen gruppiert nach Dependent aufgeführt.

Beispiel:

Der Vertriebsauftrag 001 hat sich geändert. Mit der Änderung am Vertriebsauftrag 001 haben sich auch die Vertriebsauftragspositionen A, B und C geändert. In den Exportdaten ist der Vertriebsauftrag 001 als Business Entity aufgeführt. Unterhalb des Vertriebsauftrages befinden sich die Vertriebsauftragspositionen A, B, C.

 

3.1               Aufbau der Datenstruktur für eine Business Entity Instanz

Die im Änderungsjournal ausgezeichneten Änderungen werden in der folgenden Struktur exportiert. Die Namen der Entitäten in der folgenden Grafik entsprechen den Namen der Elemente in der vom Export erzeugten XML-Datei:

Aufbau der Exportdatenstruktur

Für Änderung einer Business Entity Instanz und deren Dependents innerhalb einer Transaktion wird ein ModificationJournal-Element exportiert. Die Änderungen in der Business Entity Instanz werden in einem JournalObject-Element abgebildet.

Die Dependent-Elemente des Business Entitys sind in einer 1:n Beziehung mit dem ModificationJournal verbunden. Dabei werden alle geänderten Instanzen des Business Objects in einem Dependent-Element als JournalObject-Elemente zusammengefasst.

Beispiel:

Der Vertriebsauftrag 001 (Business Entity) hat die Vertriebsauftragspositionen A, B und C (Dependent). In der Datenstruktur würde deshalb das ModificationJournal Vertriebsauftrag eine 1:1 Beziehung zur Vertriebsauftragsposition haben. Unterhalb der Vertriebsauftragsposition befinden sich die Änderungen zu A, B und C in je einem JournalObject.

Innerhalb des JournalObject werden die Änderungen auf Ebene der Attribute aufgeführt. Für jedes geänderte Attribut gibt es ein ChangedValue-Element. Das ChangedValue-Element kann einen OldValue-Element und ein NewValue-Element, also den Wert vor der Änderung und den Wert nach der Änderung, haben. Ob einer oder beide Werte vorhanden sind, ist abhängig vom Typ der Änderung. Wurde das Business Entity, bzw. das Dependent neu angelegt, so ist nur der NewValue vorhanden. Wurden Änderungen vorgenommen, so sind beide Werte vorhanden. Bei einer Löschung ist nur der OldValue vorhanden.

Der Aufbau von OldValue und NewValue ist identisch. Sie unterscheiden sich nur in ihrer semantischen Bedeutung.

Der Datentyp am OldValue, bzw. NewValue bestimmt, welches …Value-Objekt referenziert wird. Aus der zur Verfügung stehenden Liste kann in der Regel nur ein Objekt referenziert werden. Von der Regel ausgenommen ist der Datentyp DynamikObjectCodeValue. Objekte dieses Datentyps können mehrfach aufgenommen werden. Der Elementtyp am OldValue, bzw. NewValue, bestimmt, um welchen Datentyp es sich innerhalb des DynamicObjectCodeValues handelt.

Aufbau des OldValues, bzw. NewValues.

3.2               Attribute und Beziehungen

Im Folgenden werden für alle wesentlichen Objekte in der Datenstruktur die Attribute und Beziehungen aufgeführt.

3.2.1          ModificationJournal (Business Entity)

Attribute
Attribut Erläuterung
entityName Vollqualifizierter Name des Business Entitys, z.B. com.cisag.app.sales.obj.SalesOrder
entityDescription Beschreibung des Business Entitys aus dem Repository, z.B. Vertriebsauftrag
entityInstanceString Instanz String der Business Entity Instanz, z. B. Vertriebsauftrag – 001
changedUser Name und Bezeichnung des Benutzers, der die Änderung durchgeführt hat
changedTime Zeitpunkt zu dem die Änderungen durchgeführt wurden.
Beziehungen
Beziehung Erläuterung
Dependent Auflistung aller Dependents, gruppiert nach Business Object.

Kardinalität 1:n

JournalObject Beinhaltet die Änderungen der Business Entity Instanz.

Kardinalität 1:1

3.2.2          Dependent

Attribute
Attribut Erläuterung
dependentName Vollqualifizierter Name des Dependents, z.B. com.cisag.app.sales.obj.SalesOrderDetail
dependentDescription Beschreibung des Business Entitys aus dem Repository, z.B. Vertriebsauftragsposition
Beziehungen
Beziehung Erläuterung
JournalObject Beinhaltet die Änderungen der geänderten Instanzen des Dependents.

Kardinalität 1:n

3.2.3          JournalObject

Attribute
Attribut Erläuterung
objectName Vollqualifizierter Name des Objektes, z.B. com.cisag.app.sales.obj.SalesOrderDetail
objectInstanceString Instance String des Objektes, z. B. Vertriebsauftragsposition – A
primaryKey Primärschlüssel des Objekts.
objectType Gibt den Typ des Objektes an. Mögliche Werte sind

·         BUSINESS_OBJECT

·         DYNAMIC_OBJECT.

changeType Gibt den Type der Änderung an. Mögliche Werte sind:

·         INSERT

·         UPDATE

·         DELETE

Dieser Wert hat Einfluss darauf, ob OldValue und NewValue an den ChangedValues vorhanden sind.

Bei INSERT ist nur der NewValue vorhanden.

Bei UPDATE sind Old- und NewValue vorhanden.

Bei DELETE ist nur der OldValue vorhanden.

Beziehungen
Beziehung Erläuterung
ChangedValue Beinhaltet die Änderungen pro Attribut.

Kardinalität 1:n

3.2.4          ChangedValue

Attribute
Attribut Erläuterung
attributePath Pfad des geänderten Attributes. Der Pfad wird relativ zum objectName im JournalObject angegeben. z.B. für das Attribut number im SalesOrder nur “number” als Attributpfad angegeben. Der vollständige Attributpfad mit Objektnamen wird nicht verwendet. (com.cisag.app.sales.obj.SalesOrder:number)
dataType Gibt den Datentyp des Attributes an.

Mögliche Werte sind:

·         BINARY

·         BLOB

·         BOOLEAN

·         BYTE

·         CHAR

·         CIS_DATE

·         CLOB

·         DECIMAL

·         DOMESTIC_AMOUNT

·         DOUBLE

·         DURATION

·         FLOAT

·         FOREIGN_AMOUNT

·         GUID

·         INT

·         LONG

·         NLS_STRING_VALUE

·         POINT_IN_TIME

·         QUANTITY

·         SHORT

·         SQL_DATE

·         STRING

·         TIMESTAMP

·         VALUESET

·         VARSTRING

·         PRIMARY_KEY

·         DYNAMIC_OBJECT_CODE_VALUES

elementType Dieses Attribut wird nur genutzt, wenn das Attribut dataType den Wert DYNAMIC_OBJECT_CODE_VALUES annimmt.

In diesem Fall gibt der elementType an, welchen Datentyp die Werte innerhalb eines DynamicObjectCodeValues haben.

Mögliche Werte sind:

·         CIS_DATE

·         GUID

·         DECIMAL

·         DOMESTIC_AMOUNT

·         FOREIGN_AMOUNT

·         QUANTITY

·         STRING

·         TIMESTAMP

·         VALUESET

·         PRIMARY_KEY

Beziehungen
Beziehung Erläuterung
OldValue Beschreibt den Wert vor der Änderung. Dieser Beziehung ist nur vorhanden, wenn die Änderung vom ChangeType UPDATE oder DELETE ist.

Kardinalität 1:0..1 oder 1:0..n bei DYNAMIC_OBJECT_CODE_VALUES

NewValue Beschreibt den Wert nach der Änderung. Dieser Beziehung ist nur vorhanden, wenn die Änderung vom ChangeType INSERT oder UPDATE ist.

Kardinalität 1:0..1 oder 1:0..n bei DYNAMIC_OBJECT_CODE_VALUES

3.2.5          OldValue und NewValue

Attribute
Attribut Erläuterung
valueAsString Textuelle Darstellung des Werte. Die Formatierung ist Abhängig vom Datentyp und von den Benutzereinstellungen.
Beziehungen

Aus den vorhandenen Beziehungen ist in Abhängigkeit vom Attribut dataType am ChangedValue nur eine Beziehung vorhanden.

Beziehung Erläuterung
BinaryValue Darstellung eines Binärwertes.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert BINARY hat.

Kardinalität 1:1

BlobValue Darstellung eines Blobs.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert BLOB hat.

Kardinalität 1:1

BooleanValue Darstellung eines Boolean.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert BOOLEAN hat.

Kardinalität 1:1

ByteValue Darstellung eines Bytes.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert BYTE hat.

Kardinalität 1:1

CharValue Darstellung eines Characters.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert CHAR hat.

Kardinalität 1:1

CisDateValue Darstellung eines CisDates.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert CIS_DATE hat.

Kardinalität 1:1

ClobValue Darstellung eines Clobs.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert CLOB hat.

Kardinalität 1:1

DecimalValue Darstellung eines CisDecimals.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert DECIMAL hat.

Kardinalität 1:1

DomesticAmountValue Darstellung eines DomesticAmounts.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert DOMESTIC_AMOUNT hat.

Kardinalität 1:1

DoubleValue Darstellung eines Doubles.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert DOUBLE hat.

Kardinalität 1:1

DurationValue Darstellung einer Duration.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert DURATION hat.

Kardinalität 1:1

FloatValue Darstellung eines Floats.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert FLOAT hat.

Kardinalität 1:1

ForeignAmountValue Darstellung eines ForeignAmounts.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert FOREIGN_AMOUNT hat.

Kardinalität 1:1

GuidValue Darstellung einer Guid.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert GUID hat.

Kardinalität 1:1

IntegerValue Darstellung eines Integers.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert INTEGER hat.

Kardinalität 1:1

LongValue Darstellung eines Longs.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert LONG hat.

Kardinalität 1:1

NLSStringValue Darstellung eines NLS-Werte.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert NLS_STRING_VALUE hat.

Kardinalität 1:1

PointInTimeValue Darstellung eines PointInTime.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert LONG hat.

Kardinalität 1:1

QuantityValue Darstellung eines Quantities.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert QUANTITY hat.

Kardinalität 1:1

ShortValue Darstellung eines Shorts.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert SHORT hat.

Kardinalität 1:1

SQLDateValue Darstellung eines SQLDates.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert SQL_DATE hat.

Kardinalität 1:1

StringValue Darstellung eines Strings.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert STRING hat.

Kardinalität 1:1

TimeStampValue Darstellung eines Zeitstempels.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert TIMESTAMP hat.

Kardinalität 1:1

ValueSetValue Darstellung eines ValueSet-Wertes.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert VALUE_SET hat.

Kardinalität 1:1

VarStringValue Darstellung eines VarStrings.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert VAR_STRING hat.

Kardinalität 1:1

PrimaryKeyValue Darstellung eines Primärschlüssels. Neben dem Primärschlüssel wird, wenn möglich, der InstanceString des Zielobjekts ausgegeben.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert PRIMARY_KEY hat.

Kardinalität 1:1

DynamicObjectCodeValues Darstellung eines Code-Werte Paares. Die Werte haben den Datentyp, der im Attribut elementType am ChangedValue eingetragen ist.

Die Beziehung ist nur vorhanden, wenn das Attribut dataType am ChangedValue den Wert DYNAMIC_OBJECT_CODE_VALUES hat.

Kardinalität 1:n

 

3.2.6          DynamicObjectCodeValues

Ein DynamicObjectCodeValue stellt ein Code-Wert-Paar dar. Der Code ist eine textuelle Darstellung der eindeutig ist und auch zur Sortierung genutzt werden kann. Der Datentyp des Wertes ist abhängig vom Attribut „elementType“ am ChangedValue.

OldValue und NewValue können mehrere DynamicObjectCodeValues referenzieren.

Attribute
Attribut Erläuterung
code Textuelle Darstellung des Codes.
Beziehungen

Aus den vorhandenen Beziehungen ist in Abhängigkeit vom Attribut elementType am ChangedValue nur eine Beziehung vorhanden.

Beziehung Erläuterung
CisDateValue Darstellung eines CisDates.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert CIS_DATE hat.

Kardinalität 1:1

DecimalValue Darstellung eines CisDecimals.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert DECIMAL hat.

Kardinalität 1:1

DomesticAmountValue Darstellung eines DomesticAmounts.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert DOMESTIC_AMOUNT hat.

Kardinalität 1:1

ForeignAmountValue Darstellung eines ForeignAmounts.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert FOREIGN_AMOUNT hat.

Kardinalität 1:1

GuidValue Darstellung einer Guid.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert GUID hat.

Kardinalität 1:1

QuantityValue Darstellung eines Quantities.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert QUANTITY hat.

Kardinalität 1:1

StringValue Darstellung eines Strings.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert STRING hat.

Kardinalität 1:1

TimeStampValue Darstellung eines Zeitstempels.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert TIMESTAMP hat.

Kardinalität 1:1

ValueSetValue Darstellung eines ValueSet-Wertes.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert VALUE_SET hat.

Kardinalität 1:1

PrimaryKeyValue Darstellung eines Primärschlüssels. Neben dem Primärschlüssel wird, wenn möglich, der InstanceString des Zielobjekts ausgegeben.

Die Beziehung ist nur vorhanden, wenn das Attribut elementType am ChangedValue den Wert PRIMARY_KEY hat.

Kardinalität 1:1

4                     Vorgehensweise: Daten exportieren

Lesen Sie nachfolgend, die Vorgehensweise beim Export des Änderungsjournals.

  1. Öffnen Sie die Anwendung „Daten exportieren“.
  2. Wählen Sie einen Filter für ModificationJournal aus oder erzeugen Sie einen neuen Filter.
    • Der Filter für den Export des Änderungsjournals wird angezeigt.
  3. Wählen Sie das oberste Attribut im Baum im Karteireiter Filter aus.
  4. Stellen Sie die Attributauswahl auf “Lesbare Attribute” ein.
    • Es werden alle Attribute ausgewählt. Bei Fremdschlüsselattributen wird nur der Buisness key ausgewählt. Dies wird bei den Parts DomesticAmount, ForeignAmount, Duration und Quantity benötigt.
  5. Die ausgewählten Attribute des Filters sind nun markiert. Bei Bedarf können Sie die Auswahl anpassen.
  6. Wechseln Sie auf den Karteireiter Eingrenzung.
    • Es werden ihnen die zur Verfügung stehenden Suchen angezeigt.
  7. Wählen Sie eine der Suchen aus und grenzen Sie wenn nötig die zu exportierende Datenmenge über die Suche ein.
  8. Wählen Sie in der Standardsymbolleiste „Daten exportieren“.
    • Das Dialogfenster „Daten exportieren“ wird geöffnet.
  9. In diesem Dialogfenster können Sie Einstellungen für die Ziel-Datei vornehmen.
  10. Wählen Sie „Im Hintergrund“ oder „Sofort“ um den Export zu starten.
    • Die ausgewählten Daten werden in die Ziel-Datei exportiert.

5                     Suchen im Export

Für den Export des Änderungsjournals stehen vier Suchen zur Verfügung.

  • Änderungsjournal exportieren (Konfigurationsdatenbank)
  • Änderungsjournal exportieren (Repository)
  • Änderungsjournal exportieren (OLTP)
  • Änderungsjournal exportieren (OLAP)

Mithilfe der entsprechenden Suche kann das Änderungsjournal von der jeweiligen Datenbank exportiert werden.

Das OQL-Statement kann für den Export nicht verwendet werden.

In der Sortierung kann nach dem Attribut Business Entity nicht sortiert, aber dafür gruppiert werden.

Czy ten artykuł był pomocny?