Skip to main content
Skip table of contents

Entität Event (C12EVENT)

Kurzbeschreibung

Die Entität Event (C12EVENT) dient als Sammler für Ereignisse, deren Ergebnisse beispielsweise an Drittsysteme (z.B. ERP-Systeme) übergeben werden sollen. Schnittstellen können auf diese Ereignisse entsprechend reagieren, die Daten verarbeiten und ein Ergebnis über den Verarbeitungsstatus an EVI zurückliefern. Die für die Verarbeitung benötigten Informationen werden in der Regel in Transaktionstabellen abgelegt. Events enthalten entsprechende Verweise auf die dort enthaltenen Transaktionsdatensätze.

Funktionsweise

Zum Auslösen eines Events wird ein Eintrag unter Angabe des Eventnamens, der Quelltabelle und deren Primärschlüssel, des Quelldatensatzes sowie des Mitarbeiters - welche die Bereitstellung des Events bspw. durch Auslösen eines Prozesses veranlasst hat - i.d.R. durch einen BPM-Prozess oder eine Schnittstelle geschrieben und gespeichert.

Die Event-Tabelle dient als Transaktionstabelle, auf die weitere BPM-Prozesse oder Schnittstellen reagieren können. Dies kann bspw. bei Neuanlage eines neuen Events oder durch zyklische Prüfung der Event-Tabelle geschehen. Das Überprüfen der Eventtabelle auf neue Einträge ist je Prozess oder Schnittstelle individuell zu behandeln.

Beispiel: Bei der Angebotsannahme schreibt der Angebotsprozess einen Datensatz in die Event-Tabelle. Die WOI überwacht die Tabelle und löst automatisch die Übertragung des angenommenen Angebots nach SAP aus. Parallel könnte z.B. die Beschaffung über das neue Angebot informiert werden.

Sobald am ausgehenden Datensatz, bspw. dem Angebot ein Event vorliegt, bietet die Kachel "Event-Monitor" einen Überblick über diese Events. Weitere Informationen zu dieser Kachel finden Sie hier.

Eventhandling

Durch einen Prozess ausgelöst wird ein Datensatz in die Event-Tabelle eingefügt und somit ein Event geschrieben.

Feldliste

Die Anlage von Event-Datensätzen ist BPM-Prozessen und Skripten vorbehalten. Eine manuelle Neuanlage von Event-Datensätzen durch Anwenderinnen und Anwender ist fachlich nicht vorgesehen. Alle Felder der Entität Events sind schreibgeschützt.

Feldname

Technisches Feld

Datentyp

Beschreibung

Entität

DATAENTITY

CHAR (50)

Name der Entität z.B. Quote

Primärschlüssel

DATAPK

CHAR (50)

Pk des Datensatzes in der Entität <Entity>

Mitarbeiter

Employee

Nachschlagefeld

Nachschlagefeld auf Mitarbeiter

Eventname

EVENT

CHAR (50)

Name des Events z. B. "C12MOVE", "RLM_QUOTE_ACCEPTED" ...

Vorgänger Event

PREVEventPk

Schlüsselfeld

Schlüsselfeld zur Hinterlegung eines Vorgänger-Events

Kopfsatz

ISHEAD

Boolean

Das Flag wird zur Prüfung verwendet, ob ein Event erneut übertragen werden kann. Nur in diesem Fall wird der Button "Event erneut übertragen" aktiviert.
Nur das zuletzt erzeuge Event des Datensatzes besitzt dieses Flag. Wird ein Event erneut übertragen, wird das Flag auf das neu erzeugte Event gesetzt.

Änderungsdaten

CHANGEDDATA

Memo

Hier können bspw. Strukturen von geänderten Daten aufgenommen werden, um diese durch konsumierende Systeme verarbeiten zu können.

Durch den Eintrag in die Eventtabelle wird, wie oben beschrieben, ein definierter Prozess oder Schnittstelle gestartet, die auf das neue Event reagieren. Der verarbeitende Prozess oder Schnittstelle führt die Verarbeitung durch und erzeugt nach Abschluss der Verarbeitung oder im Fehlerfall einen Eintrag in der EventResult-Tabelle zum Event.

Index

Es wird empfohlen, einen Index auf die Spalten "DATAENTITY" und "DATAPK" der Tabelle der Events zu legen.

ORACLE
SQL
-- Prüfen, ob ein potenziell passender Index bereits existiert
SELECT index_name, table_name, column_name, column_position
FROM user_ind_columns 
WHERE column_name IN ('DATAENTITY', 'DATAPK') 
	AND table_name = 'C12EVENT'
ORDER BY index_name, column_position asc
;

-- Auslesen und Prüfen des Index-Tablespace aus dem PropertyMapper
SELECT TABLESPACE_NAME 
FROM user_tablespaces 
WHERE TABLESPACE_NAME = 
	(SELECT UPPER(TO_CHAR(propertyValue)) 
	 FROM PropertyMapper 
	 WHERE id = '/de/cursor/util/sql/DatabaseInformation$!!$indexTablespace'
	)

-- Wenn ein Index vorhanden ist, diesen prüfen, ob er genutzt werden kann, ansonsten diesen Index erstellen
CREATE INDEX C12EVENT_IDX_ENTITY_PK 
ON C12EVENT(DATAENTITY, DATAPK) TABLESPACE <Index-Tablespace>
;
/* Beispiel Statement
CREATE INDEX C12EVENT_IDX_ENTITY_PK 
ON C12EVENT(DATAENTITY, DATAPK) TABLESPACE EVIJET_E_INDX
*/
MSSQL
SQL
-- Prüfen, ob ein potenziell passender Index bereits existiert
SELECT i.name AS index_name
	,object_name(i.object_id) as table_name
	,COL_NAME(ic.object_id,ic.column_id) AS column_name
	,ic.index_column_id
	,ic.key_ordinal
	,ic.is_included_column
FROM sys.indexes AS i
INNER JOIN sys.index_columns AS ic
	ON i.object_id = ic.object_id AND i.index_id = ic.index_id
WHERE COL_NAME(ic.object_id,ic.column_id) in ('DATAENTITY', 'DATAPK')
	AND object_name(i.object_id) = 'C12EVENT'
ORDER BY index_name, ic.key_ordinal asc
	
-- Wenn ein Index vorhanden ist, diesen prüfen, ob er genutzt werden kann, ansonsten diesen Index erstellen
CREATE INDEX C12EVENT_IDX_ENTITY_PK ON C12EVENT (DATAENTITY, DATAPK)
;

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.