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.
 "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"
     }
  },
The input field takes the following parameters:
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.