Open topic with navigation

TIBCO BusinessEvents® Enterprise Edition 6.3.1

# Pattern Matcher Grammar

A pattern string has four main clauses: define pattern, using, with, and starts with clause. These clauses define the patterns that need to be identified with specified streams.

The following figure displays the process flow of the four different clauses:

## Syntax Example

The following is a simple example to illustrate the four clauses of a pattern. This example checks for an incorrect order of events in an order fulfillment and shipping flow.

    define pattern /OrderTracker
    using /Order as order and /Fulfillment as fulfillment and /Shipment as shipment
    with
        order.customerId
        and fulfillment.customerId
        and shipment.customerId
    starts with order
    then fulfillment
    then shipment

The example demonstrates how Pattern Matcher correlates events across three different event streams. The pattern listens to all three streams (Order, Fulfillment and Shipment).

A pattern listens only to events that are sent to the Pattern Matcher service. See Send Events to the Service.

## Syntax Diagrams

The syntax diagrams show the structure of a pattern and of each clause in a pattern.

Read the syntax diagrams from left to right. Items above or below a main line are optional. Items that can repeat are shown by lines that loop back from the end to the beginning of the repeating section, along with the separator character or word if one is required.

Miscellaneous Terms Used in Pattern Matcher Syntax Diagrams
alias | Alias for an event in the pattern.
identifier | A string that represents the name of a pattern or the URI of an entity. Identifiers
time unit | Allowable time units are as follows: `milliseconds`, `seconds`, `minutes`, `hours`, `days`

## Names

- Pattern names (URIs) and event name can be any character inside double quotes, except double quote itself. Pattern URI needs quotes only if there is a space in the URI.
- Field and property names must be valid Java identifiers.
- Each alias must be globally unique in the whole pattern.
- To escape a keyword, use the pound sign (`# —` also known as a hash sign) before the keyword, for example, `#define`.
- Alias name, field name, property name, subscription field and bind variables can be use any of the following:
  - alphanumeric
  - digit
  - underscore ('_')
  - slash ('/')
  - Escaped keywords.

## Bind Variables

Variables begin with the dollar sign (`$`). The value is provided at deploy time. See Create the Pattern String.

You cannot use bind variables with the `datetime()` or `date()` functions. For example, it is not possible to use this type of call:

    $datetime($year,$day,$month,....)

You can, however, use bind variables using the following function:

    Pattern.Manager.setParameterDateTime()

For example:

    Pattern.Manager.setParameterDateTime(patternSc14, "javaUtilDate", date);

## Not (Negation) Scenarios

Although the language has no explicit operator for Negation or Not, negative scenarios can be implemented in other ways such as:

- Subscribe to the event type on which is not expected to occur.
- Do not describe it in the pattern.

So, when the undesired event does occur due to the subscription, the pattern instance will fail. The following pattern example demonstrates a negation scenario:

    define pattern OrderFullfilment
    using Order as order and Fulfillment as fulfillment and Cancellation as cancellation
    where
       order.customerId
       and fulfillment.customerId
       and cancellation.customerId
    starts with order
    then within 10 minutes fulfillment
    then after 5 minutes

This pattern subscribes to Cancellation events but does not use them in the pattern. After the Order and the Fulfillment events arrive within the times specified, the pattern waits for another five minutes, during which it does not expect any input. If during this or any other time the Cancellation event occurs, then the pattern fails.

Subtopics

Did you find this helpful?

YesNo
Great!
Thanks for taking the time to give us some feedback.
Sorry about that

Why wasn't this helpful? (check all that apply)

Could not find what I was looking for
Instructions confusing or unclear
Instructions did not work

Want to tell us more?

Please select at least one option or provide details about the issue!!

Error occurred while submitting feedback.

Error2 occurred while submitting feedback.

TIBCO BusinessEvents® Enterprise Edition

Copyright © 2004-2024. Cloud Software Group, Inc. All Rights Reserved.