Das Änderungsjournal kann mithilfe von virtuellen Tabellen mit ODBC abgefragt und damit in Berichten ausgegeben werden. Der Aufbau dieser virtuellen Tabellen zur Abfrage des Änderungsjournals wird in diesem Dokument beschrieben.
1 Zielgruppe
Entwickler
2 Begriffsbestimmung
Eine virtuelle Tabelle existiert nicht in der Datenbank, sondern wird vom SAS emuliert. Prinzipiell kann auf virtuelle Tabelle wie auf eine Datenbanktabelle zugegriffen werden. Der Inhalt einer virtuellen Tabelle wird zur Laufzeit der Abfrage bezüglich der Eingabewerte berechnet. Als Anfrageergebnis können beliebig viele Zeilen zurückgeben werden
Virtuelle Tabellen sollten verwendet werden, wenn das Anfrageergebnis mehr als eine Zeile umfassen kann. Wenn das Anfrageergebnis nur maximal eine Zeile enthält, bietet sich eine virtuelle Funktion an.
3 Funktionsbeschreibung
Wenn das Änderungsjournal für ein Business Entity aktiv ist, so werden alle Änderungen an den Instanzen dieses Business Entitys aufgezeichnet. Die im Änderungsjournal aufgezeichneten Änderungen können Sie mithilfe von virtuellen Tabellen mit ODBC abfragen und in Berichten ausgeben.
Die Ausgabe der virtuellen Tabelle „Änderungsjournal“ können Sie über das geänderte Business Entity sowie den Änderungszeitpunkt einschränken. Die Ausgabe enthält für jede Änderung eines Attributs mit primitivem Datentyp eine Zeile. Bei Attribute mit komplexen Datentypen (Parts) enthält die Ausgabe für alle geänderten Attribute des Parts mit primitivem Datentyp eine Zeile. Die folgenden Parts werden immer als Ganzes ausgeben:
- Hauswährung (DomesticAmount)
- Dauer (Duration)
- Fremdwährung (ForgeinAmount)
- Menge (Quantity)
Wenn sich ein primitives Attribut dieser Parts ändert, so werden alle Attribute dieser Parts in das Änderungsjournal geschrieben und ausgegeben. Diese Parts (Hauswährung, …) existieren nur auf OLTP-Datenbanken, auf allen anderen Datenbanken können diese Parts nicht verwendet werden. Das Änderungsjournal wird daher auf OLTP-Datenbanken mit der virtuellen Tabelle app_system_odbc_ModificatonJournal abgefragt, die diese Parts enthält. Auf allen anderen Datenbanken wird das Änderungsjournal mit der virtuellen Tabelle pgm_ModificationJournal abgefragt.
Sie können den alten und den neuen Wert des geänderten Attributs als Zeichenkette mithilfe der Spalten„oldValueString“ und „newValueString“ zu jedem Datentyp in einer lesbaren Darstellung abfragen. Für jeden Datentyp gibt es zusätzlich dazu jeweils eine Spalte, um den Wert direkt abzufragen, z.B. „oldValueDecimal“ für den alten Wert eines Attributs mit dem Datentyp DECIMAL.
Mehrsprachige Attribute werden als HTML-Text mit dem Datentyp CLOB_HTML in der virtuellen Tabelle ausgeben.
app_system_odbc_ModificatonJournal
pgm_ModificationJournal |
|
Spaltenname | Erläuterung |
in_changeTimeSelection | Abfragefeld für den Zeitpunkt der Änderung. Sie können diesen Eingangsparameter verwenden, um Änderungen aus bestimmten Zeiträumen zu abzufragen.
Übergeben Sie in diesem Feld einen normalisierten Selection-String für Zeitpunkte. |
in_changeUserGuid_ | GUID des Benutzers, der die Änderung durchgeführt hat. |
in_changeUserName | Name des Benutzers, der die Änderung durchgeführt hat. |
in_entityInstanceStringSelection | Abfragefeld für den Instance-String der geänderten Business Entity Instanzen. Sie können diesen Eingangsparameter verwenden, um das Änderungsjournal für eine oder mehre Business Entity Instanzen auszugeben.
Übergeben Sie in diesem Feld einen normalisierten Selection-String für Strings. |
in_entityName | Name des Business Entitys. |
in_entityPrimaryKey | Primärschlüssel der Business Entity Instanz. |
attributePath | Name des geänderten Attributs.
Wenn ein Business Object geändert wurde, so enthält diese Spalte entweder den Attributpfad der geänderten Spalte oder den Namen der geänderten Beziehung ergänzt um „_text“. Wenn ein dynamisches Business Object verändert wurde, enthält diese Spalte den Namen des geänderten Attributs. |
changeTime | Zeitpunkt zu dem das Business Entity geändert wurde. |
changeTime_gmt | Zeitpunkt zu dem das Business Entity geändert wurde in der Zeitzone GMT. |
changeTimeMs | Zeitpunkt zu dem das Business Entity geändert wurde in Millisekunden seit dem 1.1.1970 GMT. Verwenden Sie diese Spalte, um nach den Änderungszeitpunkten zu gruppieren. |
datatype | Datentyp des geänderten Attributs:
· BINARY Binäre Daten begrenzter Länge. · BLOB Binäre Daten unbegrenzter Länge. · BOOLEAN Wahrheitswert. · BYTE Ganze Zahl mit 8 Bit und Vorzeichen. · CHAR Ein Zeichen. · CIS_DATE Zeitpunkt/Datum mit Zeitzone. · CLOB Text unbegrenzter Länge. · CLOB_HTML Text unbegrenzter Länge ist als HTML formatiert. Wird für Blobs mit HTML-Inhalt und für mehrsprachige Texte verwendet. · DECIMAL Dezimalzahl. · DOMESTIC_AMOUNT Hauswährung. · DOUBLE Fließkommazahl mit 64 Bit Genauigkeit. · DURATION Dauer. · DYNAMIC_OBJECT_CODE_VALUES Wertelisten-Attribut eines dynamischen Business Objects. Die Werte dieses Datentyps werden nur als String dargestellt. · FLOAT Fließkommazahl mit 32 Bit Genauigkeit. · FOREIGN_AMOUNT Fremdwährung. · GUID Binärdaten 16 Byte. · INT Ganze Zahl mit 32 Bit und Vorzeichen. · LONG Ganze Zahl mit 64 Bit und Vorzeichen. · PRIMARY_KEY Primärschlüssel eines Business Objects. Dieser Datentyp wird für 1:1-Beziehungen verwendet. Die String-Darstellung des geänderten Attributs enthält, den Instance-String des Zielobjekts der Beziehung. · QUANTITY Menge. · SHORT Ganze Zahl mit 16 Bit und Vorzeichen. · SQL_DATE Zeitpunkt. · STRING Text begrenzter Länge. · TIMESTAMP Zeitpunkt. · VALUESET ValueSet. · VARSTRING Text begrenzter Länge. |
datatype_text | Beschreibung des Datentyps. |
entityDescription | Beschreibung des Business Entitys. |
entityInstanceString | Instanz-String der geänderten Business Entity Instanz. |
label | Label des geänderten Attributs. |
updateType | Art der Änderung des Business Objekts:
· INSERT Einfügen. Das Business Object wurde neu angelegt. · UPDATE Ändern. Das Business Object existiert bereits und wurde geändeert. · DELETE Löschen. Das Business Object wurde gelöscht. |
updateType_text | Beschreibung der Art der Änderung des Business Objekts. |
oldValueBinary | Alter Wert eines geänderten Attributs mit dem Datentyp BINARY. |
oldValueBoolean | Alter Wert eines geänderten Attributs mit dem Datentyp BOOLEAN. |
oldValueByte | Alter Wert eines geänderten Attributs mit dem Datentyp BYTE. |
oldValueChar | Alter Wert eines geänderten Attributs mit dem Datentyp CHAR. |
oldValueCisDate | Alter Wert eines geänderten Attributs mit dem Datentyp CIS_DATE. |
oldValueCLOB | Alter Wert eines geänderten Attributs mit dem Datentyp CLOB. |
oldValueDecimal | Alter Wert eines geänderten Attributs mit dem Datentyp DECIMAL. |
oldValueDomesticAmount | Alter Wert eines geänderten Attributs mit dem Datentyp DOMESTIC_AMOUNT. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
oldValueDouble | Alter Wert eines geänderten Attributs mit dem Datentyp DOUBLE. |
oldValueDuration | Alter Wert eines geänderten Attributs mit dem Datentyp DURATION. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
oldValueFloat | Alter Wert eines geänderten Attributs mit dem Datentyp FLOAT. |
oldValueForeignAmount | Alter Wert eines geänderten Attributs mit dem Datentyp FOREIGN_AMOUNT. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
oldValueHtml | Alter Wert eines geänderten Attributs mit dem Datentyp BLOB, CLOB oder Mehrsprachigen STRINGs. Geben Sie den Inhalt dieses Attributs im Bericht als HTML aus. |
oldValueGuid_ | Alter Wert eines geänderten Attributs mit dem Datentyp GUID. |
oldValueInt | Alter Wert eines geänderten Attributs mit dem Datentyp INT. |
oldValueLong | Alter Wert eines geänderten Attributs mit dem Datentyp LONG. |
oldValueQuantity | Alter Wert eines geänderten Attributs mit dem Datentyp QUANTITY. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
oldValueShort | Alter Wert eines geänderten Attributs mit dem Datentyp SHORT. |
oldValueString | Alter Wert eines geänderten Attributs in lesbarer Darstellung unabhängig vom Datentyp. |
oldValueTimestamp | Alter Wert eines geänderten Attributs mit den Datentypen TIMESTAMP oder SQL_DATE. |
newValueBinary | Neuer Wert eines geänderten Attributs mit dem Datentyp BINARY. |
newValueBoolean | Neuer Wert eines geänderten Attributs mit dem Datentyp BOOLEAN. |
newValueByte | Neuer Wert eines geänderten Attributs mit dem Datentyp BYTE. |
newValueChar | Neuer Wert eines geänderten Attributs mit dem Datentyp CHAR. |
newValueCisDate | Neuer Wert eines geänderten Attributs mit dem Datentyp CIS_DATE. |
newValueCLOB | Neuer Wert eines geänderten Attributs mit dem Datentyp CLOB. |
newValueDecimal | Neuer Wert eines geänderten Attributs mit dem Datentyp DECIMAL. |
newValueDomesticAmount | Neuer Wert eines geänderten Attributs mit dem Datentyp DOMESTIC_AMOUNT. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
newValueDouble | Neuer Wert eines geänderten Attributs mit dem Datentyp DOUBLE. |
newValueDuration | Neuer Wert eines geänderten Attributs mit dem Datentyp DURATION. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
newValueFloat | Neuer Wert eines geänderten Attributs mit dem Datentyp FLOAT. |
newValueForeignAmount | Neuer Wert eines geänderten Attributs mit dem Datentyp FOREIGN_AMOUNT. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
newValueHtml | Neuer Wert eines geänderten Attributs mit dem Datentyp BLOB, CLOB oder Mehrsprachigen STRINGs. Geben Sie den Inhalt dieses Attributs im Bericht als HTML aus. |
newValueGuid_ | Neuer Wert eines geänderten Attributs mit dem Datentyp GUID. |
newValueInt | Neuer Wert eines geänderten Attributs mit dem Datentyp INT. |
newValueLong | Neuer Wert eines geänderten Attributs mit dem Datentyp LONG. |
newValueQuantity | Neuer Wert eines geänderten Attributs mit dem Datentyp QUANTITY. Dieses Attribut existiert nur auf OLTP-Datenbanken. |
newValueShort | Neuer Wert eines geänderten Attributs mit dem Datentyp SHORT. |
newValueString | Neuer Wert eines geänderten Attributs in lesbarer Darstellung unabhängig vom Datentyp. |
newValueTimestamp | Neuer Wert eines geänderten Attributs mit den Datentypen TIMESTAMP oder SQL_DATE. |