Linguaggio delle regole CEP
Informazioni sul linguaggio delle regole CEP e sui parametri.
- Un esempio di regola CEP
"name":"This followed by that", // required; unique in tenant "createdAt": "2020-01-08T21:09:10Z", // generated; readonly "updatedAt": "2020-01-08T21:09:10Z", // generated; readonly "ruleId": "2a3ad91---xxx-xxx-xxxxxx-----xxxx-xxx, // generated; readonly "version": 1.0, // generated; readonly "status": { // generated; readonly "code": "live", "details": "Version 1.0 of this rule is live and processing." }, "instructions: { // required "dimension": [ // optional { "fieldPath": "eventDetails.businesssObject.supplierId "type": "String" } ] "pattern" : { "ifEvent": { // required "condition": { // required //Boolean expression } "repeated": { // optional "minOccurences": 3 // optional "maxOccurences": 5 // optional "consecutive": true // optional; default=false "withoutEvent": { // optional // Boolean expression } "allowCombinations": true . // optional; default=false } } "andThenEvents: [ // optional { "optional": true // optional; default=false "condition": { // required // Boolean expresssion } "shouldOccur": false // optional; default=true "consecutive": true // optional; default=false "withoutEvent": { // optional // Boolean expression } "allowCombinations": true // optional; default=false } ] "within": { // optional "timeWindow": 60 // required "fieldPath":"timestampEventOccurred" // optional } } "thenOutput": { // required "resultAlias":"" //allow mapping? "resultContext": [ // optional { "fieldPath": "eventDetails.businessObject.id } { "fieldPath": "eventDetails.businessObject.orderValue } ] } }
dove:
- dimension
- Partizionamento facoltativo degli eventi in base a un determinato campo., come l'ID ordine.
"dimension": [ { "fieldPath": "eventDetails.businesssObject.suppliedId "type": "String" } ]
- pattern
- Sequenza di eventi per rilevare un pattern.
"pattern" : {
- ifEvent
- Evento iniziale obbligatorio.
"ifEvent": {
- condition
- Condizione richiesta per l'evento iniziale.
"condition": {// Boolean expression}
- repeated
- Condizioni facoltative sul numero di volte in cui l'evento deve ripetersi. Non consentito se è specificato
andThenEvents."repeated": {
- minOccurrences
- Numero intero facoltativo che indica il numero minimo di volte in cui si verifica l'evento.Nota: se non c'è un massimo, utilizzare timesNOrMore(n ). Se n=0 , utilizzare oneOrMore( ). Se min==0 utilizzare optional().
"minOccurences": 3
- maxOccurrences
- Numero intero facoltativo che specifica il numero massimo di volte in cui si verifica l'evento.Nota: se min == max, utilizzare i tempi (n, m).
"maxOccurences": 3
- consecutive
- Booleano facoltativo che specifica se l'evento deve seguire immediatamente l'evento precedente o se un altro evento diverso può verificarsi nel mezzo. Il valore predefinito è
false.Nota: se è specificato il valore minimo ma il valore massimo non lo è, per la cancellazione dello stato è richiesta una condizionewithin windowounlessEvent."consecutive": true
- withoutEvent
- Espressione booleana facoltativa che invalida qualsiasi modello corrispondente in precedenza
stateOnlyvalido quando vengono specificati min/maxOccurences ."withoutEvent": {//Boolean expression}
- allowCombinations
- Booleano facoltativo. Il valore predefinito è
false. Non valido se consecutivo ètrue."allowCombinations": true} // end `repeated` } // end `ifEvent`
- andThenEvents
- Elenco facoltativo di eventi che devono seguire l'evento iniziale. Non consentito se
repeatedviene fornito suifEvent."andThenEvents: [{
- optional
- Valore booleano facoltativo che indica se questo evento è richiesto nella sequenza di eventi. Il valore predefinito è
false."optional": true
- condition
- Espressione booleana obbligatoria che descrive l'evento.
- shouldOccur
- Valore booleano facoltativo che indica se l'evento deve verificarsi o meno. Il valore predefinito è
true. Utilizzarefalseper richiedere che l'evento non si verifichi."shouldOccur": false
- consecutive
- Booleano facoltativo che specifica se l'evento deve seguire immediatamente l'evento precedente o se un altro evento diverso può verificarsi nel mezzo. Il valore predefinito è
false."consecutive": true/false
- withoutEvent
- Espressione booleana facoltativa che invalida qualsiasi stato di pattern precedentemente corrispondente, il che significa che arresta l'attivazione di questo pattern.
"withoutEvent": { //Boolean expression}
- allowCombinations
- Booleano facoltativo. Il valore predefinito è
false. Non valido seconsecutiveètrue."allowCombinations": true} // end sample event in andThenEvents ] // end `andThenEvents` array
- within
- Finestra temporale facoltativa in cui deve verificarsi l'intero modello dall'inizio alla fine.
"within": {
- timeWindow
- Tempo richiesto in secondi.
"timeWindow": long
- fieldPath
- Percorso facoltativo del campo nell'evento che contiene l'ora da utilizzare. Il valore predefinito è
timestampEventRecieved."fieldPath":"timestampEventOccurred"} // end `within`} // end `pattern`
- thenOutput
- Definizione di output richiesta. Include il nome del pattern attivato. Campi contestuali facoltativi da includere nell'output.
"thenOutput": { "resultAlias":"<name of the pattern>" //allow mapping? "resultContext": [ { "fieldPath": "eventDetails.businessObject.id } { "fieldPath": "eventDetails.businessObject.orderValue } ] } // end `thenOutput`