An open API service indexing awesome lists of open source software.

https://github.com/cristianonicolai/jbpm-xes

jBPM XES exporter
https://github.com/cristianonicolai/jbpm-xes

bpm bpmn jbpm opensource process-mining workflow workflow-engine xes

Last synced: 2 months ago
JSON representation

jBPM XES exporter

Awesome Lists containing this project

README

        

# jBPM XES Export Service

## Overview

The jBPM XES export tool aims to facilitate exporting XES based logs from the jBPM runtime. These logs can then be consumed
by different process mining tools to analyse different aspects from the process runtime execution such as conformance, performance,
deviations, process discovery and more.
eXtensible Event Stream (XES) is an xml based standard that unifies the interchange event data information between information systems on one side and analysis tools on the other side.
For more information regarding the XES standard please visit: http://www.xes-standard.org/

## Building

For building this project locally, you firstly need to have the following tools installed locally:
- git client
- Java 1.8
- Maven

Once you cloned the repository locally all you need to do is execute the following Maven build:

```
mvn clean install
```

Once the build is complete, you can use the generated JAR in 'target/jbpm-xes-${version}-jar-with-dependencies.jar' using:

```
java -jar target/jbpm-xes-1.0.0-SNAPSHOT-jar-with-dependencies.jar
```

## Sample output XML

```



















































































































```

## How it works

The jBPM XES Export tool, connects directly to the jBPM log database in order to extract the relevant information.
If you intend to export any logs, please ensure that you use the `JPA` as your KJAR's audit mode.
The tool will look into the `ProcessInstanceLog` and `NodeInstanceLog` tables and filter the data based on the parameters you provided to export.
As a primary rule for the the XES log, only one process can be exported at time, for that we use the `-process` parameter where you can specify
the process definition id you would that to filter on. That will filter down the logs to only process instances that matches the paramter.
You can also use other filters like `version`, `status`, and more.

## Usage

Out-of-box, the jBPM XES Export tool allows you to connect with the following databases:
- H2
- MariaDB
- MySQL
- PostgreSQL

To use another database, simply provide the additional jar in the classpath of the application.

### Options

The tool allows a series of custom parameters to fine tune which logs should be exported, to see the full list of options please execute:

```
java -jar target/jbpm-xes-1.0.0-SNAPSHOT-jar-with-dependencies.jar
```

Which will outcome the following:

```
usage: xes -driver [-file ] [-logtype ]
[-nodetypes] [-password ] -process [-status
] -url -user [-version ]
-driver Database driver class name
-file File name to save result XES. Default will print
in the console.
-logtype Use 0 for node entered events or 1 for exit
events. Default will export all types.
-nodetypes Export all node type. Default will only export
relevant activities.
-password Database password
-process Process Id to export
-status Process status to export
-url Database url
-user Database username
-version Process version to export
```

### Example using a local H2 database file

```
java -jar target/jbpm-xes-1.0.0-SNAPSHOT-jar-with-dependencies.jar -driver org.h2.Driver -user sa -password sa -url jdbc:h2:file:./spring-boot-jbpm -process evaluation -file jbpm.xes
```

### Example using MySQL database

```
java -jar target/jbpm-xes-1.0.0-SNAPSHOT-jar-with-dependencies.jar -driver com.mysql.jdbc.Driver -user jbpm -password jbpm -url jdbc:mysql://localhost/jbpm -process evaluation -file evaluation.xes
```

## Feedback

Feel free to open issues if you face any problems using this tool, we would love to help you in your process mining journey!