Contents
This sample shows how to use the Decision Table operator.
The Decision Table operator evaluates a set of rules against each input tuple and emits an output tuple when a rule's conditions match the values in the input tuple.
The sample contains two StreamBase applications, each with a corresponding table in StreamBase native (.sbdt
) format. The native format tables can also be replaced with their supplied respective tables in the Excel (.xlsx
) format. The decision-table.sbapp
application uses simple condition and action schemas and a small set of rules that illustrate the basic decision table rule
syntax. The decision-table-streambase-expressions.sbapp
application uses a more complex condition schema and set of rules that illustrate the use of StreamBase expressions in condition
and action columns.
See Using the Decision Table Operator for a description of the operator's properties.
In StreamBase Studio, import this sample with the following steps:
-
From the top-level menu, click
> . -
Enter
decision
to narrow the list of options. -
Select Decision tables containing rules from the Data Constructs and Operators category.
-
Click
.
StreamBase Studio creates a single project for the operator samples.
-
In the Project Explorer view, open the sample you just loaded.
If you see red marks on a project folder, wait a moment for the project to load its features.
If the red marks do not resolve themselves after a minute, select the project, right-click, and select
> from the context menu. -
Open the
src/main/eventflow/
folder.packageName
-
Open the
decision-table.sbapp
file and click thebutton. This opens the SB Test/Debug perspective and starts the module.
-
In the Manual Input view, select the
Input
stream, enterJane Doe
in theName
field, and click . -
In the Output Streams view, observe a tuple dequeued on the
Output
stream indicating a decision table rule has fired. -
Experiment by entering other values in the
Name
andAge
fields, clicking , and observing the resulting output tuples. -
When done, press F9 or click the
Terminate EventFlow Fragment button.
-
In the Project Explorer view, open the sample you just loaded.
If you see red marks on a project folder, wait a moment for the project to load its features.
If the red marks do not resolve themselves after a minute, select the project, right-click, and select
> from the context menu. -
Open the
src/main/eventflow/
folder.packageName
-
Open the
decision-table-streambase-expressions.sbapp
file and click thebutton. This opens the SB Test/Debug perspective and starts the module.
-
In the Manual Input view, select the
Input
stream, enterPeter
in theName
field, and click . -
In the Output Streams view, observe a tuple dequeued on the
Output
stream indicating a decision table rule has fired. -
Experiment by entering other values in the fields, clicking
, and observing the resulting output tuples. -
When done, press F9 or click the
Terminate EventFlow Fragment button.
The Decision Table is one of the artifact types that can be deployed from Model Management Server (hereafter referred to as MMS). The deployment properties are configured in the Artifact tab of the Decision Table operator.
Due to differences in server configuration, the instructions pertaining to deployment in MMS are not exhaustive, and may not cover every case. See the MMS documentation for the full deployment workflow.
-
First, run
decision-table.sbapp
as an EventFlow Fragment by following the instructions in the previous section. -
In MMS, from the top-level menu, select Group identifier and Artifact identifier.
> > and enter anyEnter
1.0.0-SNAPSHOT
for Version. -
Create a new Decision Table artifact with
> > . Select the project you created earlier and enterApplicant_Simple_mms.sbdt
for the Name.Leave the Path field blank.
Click
and navigate to your EventFlow module'sApplicant_Simple.sbdt
file (note: the name of the uploaded file does not matter since only the file contents are kept). This table will be used for the deployment, but you can also create a blank table by not choosing to upload a file. -
Create a new Deploy Descriptor for the project via
> > .Enter any Name.
Click
and select the cluster that is running in Studio. Studio assigns a default cluster name as your computer username. -
MMS projects must be approved before being deployed. To approve the project, right-click the project in the Project Explorer view and select Approvals subpage. Check the cluster to deploy and click .
, then open the -
Create a checkpoint by right-clicking anywhere in the Project Explorer view and selecting
> . Enter any name and click .Since creating a checkpoint triggers a validation and build of each project in the sandbox, you may need to wait briefly before the project is ready for deployment. The project is ready when there is a notification in the Notifications view that says
dependency <project name> updated
. -
To deploy to the cluster, right-click the project in the Project Explorer view and select
. Optionally enter a name and description.When the deployment completes, you should see a line in the Studio console like
DecisionTable: Filename at load: Applicant_Simple_mms.sbdt@1.0.0-SNAPSHOT
. The Deployments view in MMS will also show the deployment status aspending
and thenrunning
.You can send tuples to the module via the Manual Input view in Studio as before, with the Decision Table from MMS used as the table.
When you load the sample into StreamBase® Studio, Studio copies the sample project's files to your Studio workspace, which is normally part of your home directory, with full access rights.
Important
Load this sample in StreamBase® Studio, and thereafter use the Studio workspace copy of the sample to run and test it, even when running from the command prompt.
Using the workspace copy of the sample avoids permission problems. The default workspace location for this sample is:
studio-workspace
/sample_decision-table
See Default Installation Directories for the default location of studio-workspace
on your system.