Imixs-Documents provides an Open Source Process and Document Management Suite for small, medium and large enterprises. The Project is based on the Workflow Suite Imixs-Office-Workflow and is licensed under the GPL.
The goal of the project is to provide a powerful and easy-to-use Business Process and Document Management suite for companies and organizations. With the help of 'Imixs-BPMN', business processes can be designed within the BPMN 2.0 standard and easily adapted to the individually needs of an enterprise.
Imixs-Documents provides a selection of standard workflow models that can be used for a quick start. The workflow models are provided in different languages. Switch into your preferred language for further details.
All standard models have included a multi-level approval workflow. The approval is determined by team management at the process and space levels. To add a management approval just add a manager into the corresponding process manager section.
See the documentation to learn how to interact with it!
Imixs-Documents allows to integrate an online office suite like LibreOffice Online. LibreOffice supports all major document, spreadsheet and presentation file formats, which can processed in a collaborative way within your business process.
Collabora Office with is one of the world’s most widely used Open Source office suite can be integrated easily. Found more details here
Imixs-Documents includes the OCR functionality provided by the subproject Imixs-Archive-OCR. This feature allows you to parse the content of scanned documents for further processing. The OCR solution is based on Apache Tika and Tesseract. To activate the OCR functionality a Tika service need to be started.
Within Imixs-Documents, forms can be customized from the BPMN model. This makes it easy to design business processes from scratch without coding. A so called 'Custom Form' can be defined in a BPMN Data object.
The following template shows an example:
<?xml version="1.0"?>
<imixs-form>
<imixs-form-section columns="2" label="Vertragsdaten">
<item name="contract.name" type="text" label="Partner:" />
<item name="contract.number" type="text" label="Nummer:" />
<item name="contract.start" type="date" label="Beginn:" />
<item name="contract.end" type="date" label="Ende:" />
<item name="contract.fee" type="float" label="Gebühr:" />
</imixs-form-section>
<imixs-form-section columns="2" label="Zahlungsdaten">
<item name="payment.cycle" type="text" label="Abrechnungsperiode:" />
<item name="payment.type" type="text" label="Zahlungsart:" />
<item name="cdtr.iban" type="text" label="IBAN:" />
<item name="cdtr.bic" type="text" label="BIC:" />
<item name="cdtr.name" type="text" label="Kreditor:" />
</imixs-form-section>
</imixs-form>
Find details how to model custom forms here.
The following sections list the business items predefined by Imixs-Documents. For application specific item names the ‘dot.Case’ format is recommended. It’s basically a convention that makes it easier to see what properties are related.
Item | Type | Description |
---|---|---|
Request | ||
request.subject | text | Subject |
request.name | text | Requester name |
request.email | text | Requester E-Mail |
request.number | text | Order number |
Order | ||
order.name | text | Order name |
order.number | text | Order number |
order.delivery | date | Delivery date |
order.total | float | Order total amount |
Invoice | ||
invoice.number | text | Invoice number |
invoice.date | date | Invoice Date |
invoice.total | float | Invoice total amount |
invoice.vat | float | Invoice vat |
invoice.net | float | Invoice net amount |
invoice.currency | text | currency code |
Contract | ||
contract.name | text | Contract name |
contract.partner | text | Contract partner name |
contract.number | text | Contract number |
contract.start | date | Contract start date |
contract.end | date | Contract end date |
contract.fee | float | Contract fee per billing cycle |
Creditor | ||
cdtr.name | text | Creditor name |
cdtr.iban | text | IBAN number |
cdtr.bic | text | BIC number |
Debitor | ||
dbtr.name | text | Debitor name |
dbtr.iban | text | IBAN number |
dbtr.bic | text | BIC number |
Payment | ||
payment.type | text | credit card, SEPA |
payment.date | date | payment date |
payment.total | float | payment amount |
payment.cycle | text | payment cycle (monthly, yearly, fixed date |
Imixs-Documents supports the integration of the Imixs-ML framework. To activate the Imixs-ML functionality a Imixs-ML-Spacy service and an optional Imixs-ML-Training Service need to be started. The docker-compose yaml file docker/docker-compose-ml.yml shows an example setup of the service integration.
Optional custom ML models can be integrated by adding a docker volume. E.g:
./src/models/:/usr/src/app/models/
The source code of Imixs-Documents is free available on Github. If you have any questions about how Imixs-Documents works and how you can use it in your own project, you can ask your question on the GitHub Issue Tracker. With a pull request on GitHub you can share your ideas or improvements that you want to contribute.
Imixs Software Solutions GmbH is an open source company and we are specialized in business process management solutions (BPMS). If you need professional services or consulting for your own individual software project please contact us.
Imixs-Office-Workflow provides a Docker Image to run the service on any Docker host. The docker image is based on the docker image imixs/wildfly which can be used for development as also for production.
Imixs-Documents is based on Maven and runs on the Jakarta EE stack. Imixs-Office-Workflow can be deployed on JBoss/Wildfly server or other Java EE application servers. To build the application from sources, run the maven install command first:
$ mvn clean install
Please check the pom.xml file for dependencies and versions. The master-branch of the project is continuously under development and is typically against the latest snapshot releases form the Imixs-Workflow project. To run a stable version please build a tagged version. To deploy the artifact the application server must provide a database pool named "java:/jdbc/office" and a security domain/realm named 'office'. See also the Imixs-Workflow Deployment Guide for further details.
Developers can use a docker image for testing and the development of new features. To build a new container first build the maven artefact running:
$ mvn clean install -Pdocker
To start Imixs-Office-Workflow with docker, the docker-compose command line tool an be used:
$ docker-compose -f docker/docker-compose.yml up
Note: this command will start several containers,
- a Postgre SQL database server
- a Wildfly Server running Imixs-Documents
Optional you can run the docker-compose configuration docker/docker-compose-dev.yml which will also start a the Imixs-Admin tool
$ docker-compose -f docker/docker-compose-dev.yml up
The development configuration sets a local mount point at the following location:
~/git/imixs-office-workflow/src/docker/deployments
Make sure that this directory exits. During development new versions can easily deployed into this directory which is the auto-deployment folder of Wildfly. For further details see the imixs/wildfly docker image.
To run Imixs-Documents in a Docker production environment the project provides several additional maven profiles:
With the profile 'docker-build' a docker container based on the current version of Imixs-Office-Workflow is created locally
$ mvn clean install -Pdocker
With the 'docker-push' profile the current version of Imixs-Office-Workflow can be pushed to a remote repository:
$ mvn clean install -Pdocker-push -Dorg.imixs.docker.registry=localhost:5000
where 'localhost:5000' need to be replaced with the host of a private registry. See the docker-push command for more details.
Imixs-Office-Workflow is also available on Docker-Hub. The public docker images can be used for development and production. If you need technical support please contact imixs.com
Imixs-Documents provides a base deployment configuration for Kubernetes. The setup is based on Kustomize providing a declarative object management.
To create the deployment objects from the base-deployment run:
$ kubectl apply --kustomize https://github.com/imixs/imixs-documents/kubernetes/
The service endpoint of Imixs-Documents will be published on port 8080. This basic deployment configuration assumes that a default storage class is defined within your kubernetes cluster. This storage class will be used for the database storage and the search index. You can customize the service and persistence volume configuration to your needs by using a custom setup.