Structure of the Case event emitter JSON file
The JSON configuration file for the Case event emitter includes a source section to specify the object store for events, a filter section to specify what solutions are used, and an output section to specify the target location for retrieved events.
Input
FileNet® P8 process events (workflow and workitem) are supported.
Source
The input field identifies the target object store that the emitter must
connect to for retrieving events.
The input field takes the following parameters: "input": {
"default" : {
"enable" : true,
"dateSql": "20201201T000000Z",
"logicalUniqueId" : "logicalID",
"ceUrl": "https://localhost.fyre.ibm.com:9443/wsi/FNCEWS40MTOM",
"ceObjectStore" : "TOS",
"ceUsername" : "intgpeadmin",
"cePasswordBase64" : "WFQA20zz",
"processPEEvents" : true,
"peConnectionPoint" : "TOS_ConnPt"
}
},
- enable
- The value for the enable field must be true for the emitter to process the events from the source.
- logicalUniqueId
- The logicalUniqueId field must contain an 8-character alphanumeric string without underscores. This field represents the logical grouping of different emitters. In other words, all the emitters that use the same logicalUniqueId value are treated as a single group that tries to emit the events from the Content Engine. This value is always required. While processing, the emitter keeps track of the events that are processed by using the Content Engine Audit Processing Bookmark with a display name that is based on the logicalUniqueId field. Therefore, if the emitter is restarted and if the bookmark exists, the emitter processes the events from the last bookmark.
- dateSql
- The value of the dateSql field represents the creation date of the events. The emitter starts processing the events from that date. If a bookmark exists, the emitter ignores the dateSql field and processes the events from the bookmark.
- ceUrL, ceObjectStore, ceUsername, cePasswordBase64
- The values for the ceUrL, ceObjectStore,
ceUsername, and cePasswordBase64 fields must match the
values that are related to the Content Engine server that the emitter connects to for emitting the
events. Tip: To encode your password, run
echo -n <yourPassword>
from a Linux® (or Unix emulation on Windows) command line, for example$ echo -n yourPassword | base64 eW91clBhc3N3b3Jk
. - processPEEvents
- This parameter is optional, and set to true by default if all the other remaining mandatory parameters are set. If you do not want to process events from FileNet Process Engine, set this parameter to false.
- peConnectionPoint
- The value of the peConnectionPoint parameter is the name of the connection
point to the Process Engine workflow system, such as
TOS_ConnPt
.
Note: While configuring multiple target object stores, provide unique IDs
(logicalUniqueIds) in input section of configuration JSON file for each of the target object
stores.
Filter
To avoid sending events about a case solution that must not be processed, you must specify the
name of each solution.
Attention: Add all the solutions you want to be processed
before you deploy the Case event emitter. You can add the wildcard character (*) to indicate
that you want to process all the
solutions.
"actions": {
"default": {
"type": "filter",
"conditions": [
{
"match": {
"source.icm.solution-name": "<The name of the solution whose events you want to be emitted>"
}
}
]
}
}
If you want to specify more than one solution, add a
match
block for each in
the conditions
array.
"actions": {
"default": {
"type": "filter",
"conditions": [
{
"match": {
"source.icm.solution-name": "<Solution Name A>"
}
},
{
"match": {
"source.icm.solution-name": "<Solution Name B>"
}
}
]
}
}
Optional: Filter
To avoid sending events about a case type that must not be processed, you must specify the name
of each type.
Attention: Add all the case types you want to be processed
before you deploy the Case event emitter. You can add the wildcard character (*) to indicate
that you want to process all the case
types.
"actions": {
"default": {
"type": "filter",
"conditions": [
{
"match": {
"source.icm.solution-name": "<The name of the case type whose events you want to be emitted>"
}
}
]
}
}
If you want to specify more than one solution, add a
match
block for each in the
conditions
array.
"actions": {
"default": {
"type": "filter",
"conditions": [
{
"match": {
"source.icm.case-type-name": "<Case type Name A>"
}
},
{
"match": {
"source.icm.case-type-name": "<Case type Name B>"
}
}
]
}
}
Output
The
"output"
field defines where the emitter should push events to. Add all the
properties that the Kafka producer documentation identifies as mandatory."output" : {
"default" : {
"enable" : true,
"bootstrap.servers" : "A comma-separated list of servers",
"sasl.mechanism": "PLAIN etc.",
"topic" : "topic to use",
"security.protocol" : "See the Kafka documentation.",
"ssl.protocol" : "See the Kafka documentation.",
"ssl.enabled.protocols": "See the Kafka documentation.",
"ssl.endpoint.identification.algorithm" : "See the Kafka documentation.",
"api_key" : "An api key if you use Kafka on IBM Cloud (previously known as Bluemix)."
}
- bootstrap.server
- Details of the Kafka bootstrap server
- topic
- The Kafka topic to use
- sasl.mechanism, security.protocol, ssl.protocol, ssl.enabled.protocols, ssl.endpoint.identification.algorithm
- The security properties for Kafka. For more information, see Securing Case emitter communications to Kafka and the Producer Configs section of the Kafka documentation.
- api_key
- Set this property only if Kafka is used on IBM Cloud®.
For
example:
"output" : {
"default" : {
"enable" : true,
"type" : "kafka",
"sasl.mechanism": "PLAIN",
"bootstrap.servers" : "localhost:9092",
"topic" : "ibm-bai-ingress"
}
}
Note: When configuring multiple target object stores, use the same kafka output section for
each of the configuration files.
For more information about the Kafka output type, see Securing Case emitter communications to Kafka.