You are viewing the documentation for Blueriq 15. Documentation for other versions is available in our documentation directory.
Case-Modelling has been in beta stage in the Blueriq 15 major. At the latest minor, all Blueriq 16.0 changes have been merged back to Blueriq 15.13. From this point on Case-Modelling is out of beta and can be used.
Please make sure to upgrade to at least Blueriq 15.13 when using Case-Modelling, possibly in a production environment. Earlier minor versions are not supported.
The Case Engine manages all operations on cases, case data and tasks. It communicates with the Blueriq Runtime through asynchronous messages and a REST API.
The Case Engine is essential to use the event driven DCM architecture and depends on multiple other components to function properly.
This section explains how to install the Case Engine, how to configure it and which other components are needed to be installed.
Installation
The Case Engine currently is a Runtime with specific configuration. It is installed by deploying the Runtime WAR to a supported application server, see Installing Runtime. Alternatively you can use the DCM 2.0 beta installation which includes the case engine with configuration.
Dependencies
The Case Engine depends on the following components:
- Audit component
- DCM Lists Components
- Timeline SQL Store component
- Trace SQL Store component
- DCM queueing
- Document database MongoDB
- Customerdata service
- Process SQL store component
- Case Engine Scheduler
- Case Engine Scheduler Quartz
The bootstrap.properties
file needs to have the following content to enable these profiles:
spring.profiles.active=native,\ case-engine,\ customerdata-client,\ dcm-lists-publisher,\ externaldatasources,\ process-sql-store,\ timeline-event-publisher-amqp,\ trace-event-publisher-amqp,\ audit
Configuration
Specific for the case engine there are multiple properties that need to be set.
These properties are divided into three files:
application.properties
: common properties that concern security, logging and the connection to the customer dataapplication-
: properties for several queues, MongoDB and Quartzcase-engine
.propertiesapplication-
: properties that enable the Case Engine to communicate with the Process SQL Storeexternaldatasources
.properties
Create the files in the additional config location of the case engine and copy and paste the corresponding properties into each file.
When using the DCM 2.0 beta installation this configuration is included
### Users ### blueriq.security.auth-providers.local01.type=in-memory blueriq.security.auth-providers.local01.users.location=users.properties blueriq.security.auth-providers-chain=local01 ### Customerdata ### blueriq.customerdata-client.url=http://localhost:30002/customerdata/api/v1/ blueriq.customerdata-client.username=blueriq blueriq.customerdata-client.password=welcome ### Exports ### blueriq.exports.description=Exports blueriq.exports.prefix=export blueriq.exports.folder=exports blueriq.exports.enabled=true ### Security settings ### blueriq.security.csrf-protection.enabled=false ### Blueriq logging ### #logging.level.com.aquima=DEBUG #logging.level.com.blueriq=DEBUG logging.file.name=logs/case-engine.log ### Default Queue configuration, can be ommitted when overruled at specific configuration in application-case-engine.properties ### blueriq.default.rabbitmq.host=localhost blueriq.default.rabbitmq.port=30010 blueriq.default.rabbitmq.username=guest blueriq.default.rabbitmq.password=guest blueriq.default.rabbitmq.virtualHost=/ blueriq.default.rabbitmq.ssl.enabled=false
# queue configuration from blueriq.default.rabbitmq and can be overruled blueriq.case.engine.rabbitmq.queueNames=dcmEventsQueue blueriq.case.engine.rabbitmq.exchangeName=dcmEvents # queue configuration from blueriq.default.rabbitmq can be overruled blueriq.process.engine.v2.automatic-task.rabbitmq.exchangeName=dcmTasksEvents # queue configuration from blueriq.default.rabbitmq can be overruled blueriq.process.engine.v2.process-finished.rabbitmq.exchangeName=dcmEvents # queue configuration from blueriq.default.rabbitmq can be overruled blueriq.case.engine.scheduler.rabbitmq.exchangeName=dcmScheduledEvents # queue configuration from blueriq.default.rabbitmq can be overruled blueriq.case.engine.maintenance.rabbitmq.exchangeName=dcmMaintenanceEvents blueriq.case.engine.concurrency.concurrent-consumers=1 blueriq.case.engine.concurrency.max-concurrent-consumers=1 blueriq.case.engine.data.mongodb.host=localhost blueriq.case.engine.data.mongodb.port=30012 blueriq.case.engine.data.mongodb.database=caseEngine blueriq.locking.mongodb.host=localhost blueriq.locking.mongodb.port=30012 blueriq.locking.mongodb.database=locks spring.quartz.job-store-type=memory spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool spring.quartz.properties.org.quartz.threadPool.threadCount=2
For more information on concurrent consumers see Configuring RabbitMQ.
#### Datasources H2 ### blueriq.datasource.process-sql-store.url=jdbc:h2:./h2db/dcm;AUTO_SERVER=TRUE blueriq.datasource.process-sql-store.username=sa blueriq.datasource.process-sql-store.password= blueriq.datasource.process-sql-store.driverClassName=org.h2.Driver blueriq.hibernate.process-sql-store.hbm2ddl.auto=update blueriq.hibernate.process-sql-store.dialect=org.hibernate.dialect.H2Dialect blueriq.hibernate.process-sql-store.criteria.literal_handling_mode=BIND blueriq.hibernate.process-sql-store.globally_quoted_identifiers=true blueriq.hibernate.process-sql-store.globally_quoted_identifiers_skip_column_definitions=true
hbm2ddl.auto
When using a production database, please use 'validate' instead of 'update' in combination with the supplied database scripts.
# queue configuration from blueriq.default.rabbitmq can be overruled blueriq.dcm.lists-publisher.rabbitmq.exchangeName=dcmListsEvents
Authentication
The synchronous operations are protected with basic authentication. To specify the credentials required to log in to the Case Engine, create a user in user.properties
with the case-engine
role.
#format: USERNAME=PASSWORD,PRIVILEGE1,PRIVILEGE2,... #example: admin=welcome,agent,customer,underwriter # User for Case Engine caseengine={noop}caseengine,case-engine
If you are using a different authentication provider, like LDAP, you can create a user in that provider instead of users.properties
, as long as it has the proper role.
Event logging
It is possible to enable logging for events sent to the Case Engine. A line is logged when the Case Engine starts processing the event and when it is finished.
Events list
- AbortTaskService
- AbortTaskWithoutUnlocking
- AssignTask
- CompleteTask
- CreateCase
- DemuxedThrowMessageEvent
- GetCaseInfo
- GetTaskInfo
- RemoveCase
- ScheduledEvent
- StartTask
- ThrowMessage
How to enable
By default, the events are logged on INFO level. To specifically enable logging for the events only, configure the following package on INFO level:
logging.level.com.blueriq.dcm.caseengine.service=INFO
Example output
StartTask event: