Quick Introduction:
IBM Business Automation Manager Open Editions is an open-source business automation platform that combines flexible business process automation and decision management. BAMOE facilitates the collaboration between business and IT users throughout the creation, management, validation, and deployment of tailored process and decision automation solutions. Business users can modify business logic and business processes without requiring assistance from IT personnel.
BAMOE is a cloud-native technology fully supported on both Red Hat OpenShift Container Platform and Kubernetes, allowing for flexible deployment across hybrid cloud environments.
What’s New:
IBM Business Automation Manager Open Editions (BAMOE) 9.1 introduce several new features designed to enhance business automation and decision management capabilities.
- Collaborative Environment: The new Canvas feature allows developers and business users to collaborate on projects within a single enterprise repository, improving communication and efficiency.
- Lightweight and Fast Engines: The decision and rules engine, powered by Kogito and Drools, is optimized for event-driven services within microservices architectures and serverless deployment models.
- Enhanced Authoring Tools: BAMOE Canvas and the IBM BAMOE Developer Tools for VSCode provide improved tools for developing and deploying business rules and processes directly from VSCode.
- New Features in Version 9.1: This version includes a new Helm Chart, DMN 1.5 support, a new DMN Editor, and enhanced capabilities for decision management. It also introduces a technology preview of stateful process services, expanding the scope of process automation possibilities.
Pre-requisites:
- (Optional) If you are working on Windows have Git-bash installed and run all the commands in it.
- Install Podman in the local machine and verify it’s in Running State.
run “alias docker=podman” to refer to podman for all docker references.
(Optional) since i am running on mac, i have to set the DOCKER_HOME to 'unix:///var/folders/3p/k9k863kx4yq6btj0lsm534j80000gn/T/podman/podman-machine-default-api.sock'
- Have Java 17 installed locally and set the JAVA_HOME variable (JAVA_HOME path might vary depending on Operating System).
verify by running “java -version”.
- Have Maven v3.9.6 installed locally and set in M2_HOME variable.
verify by running “mvn -v”.
- Add Both M2_HOME and JAVA_HOME to PATH variable.
- Install VsCode code editor and install BAMOE Developer Tools extension for VsCode.
- Create IBM id, Purchase License so that you get access to Passport Advantage Online for Customers, where you can download IBM software.
Setup:
- Download IBM Business Automation Manager Open Editions 9.1.0 - Maven Repository (bamoe-9.1.0-maven-repository.zip) from Passport Advantage using the Part Number M0J3HEN.
- Add BAMOE dependencies(bamoe-9.1.0-maven-repository.zip) downloaded from Passport Advantage to the local Maven repository. Refer the docs here.
- Download the IBM Business Automation Manager Open Editions 9.1.0 – Examples (bamoe-9.1.0-examples.zip) file from Passport Advantage using Part Number M0J3KEN and extract locally in you working directory.
- Once you enter the folder, The Structure should look like below.
- If you move into kogito-quarkus-examples , You will be able traverse through many examples showcasing unique capabilities like Human Task , Decision Service and integration to services like Kafka etc.
- Let’s select an example for instance process-decisions-quarkus and open a terminal in the selected example folder.
- The Examples come with basic config just including Swagger endpoint, To add additional Services like Dev-UI (Similar to Business central in v8) you have to modify 2 file... pom.xml and application.properties
Coming to pom.xml , add the following lines
<dependencyManagement>
<dependencies>
[...]
<dependency>
<groupId>com.ibm.bamoe</groupId>
<artifactId>bamoe-techpreview-bom</artifactId>
<version>${kogito.bom.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
[...]
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-quarkus-devui</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kogito-addons-quarkus-data-index-postgresql</artifactId>
<version>9.1.0-ibm-0001</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-agroal</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-addons-quarkus-persistence-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-addons-quarkus-process-management</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-addons-quarkus-process-svg</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-addons-quarkus-source-files</artifactId>
</dependency>
[...]
</dependencies>
and replace the application.properties content with below content
quarkus.swagger-ui.always-include=true
kogito.generate.rest.decisions=true
kogito.generate.rest.processes=true
# Disabling OIDC
quarkus.oidc.enabled=false
# run create tables scripts
quarkus.flyway.migrate-at-start=true
quarkus.flyway.baseline-on-migrate=true
quarkus.flyway.baseline-version=0.0
quarkus.flyway.locations=classpath:/db/migration,classpath:/db/jobs-service,classpath:/db/data-audit/postgresql
quarkus.flyway.table=FLYWAY_RUNTIME_SERVICE
kogito.persistence.type=jdbc
quarkus.datasource.db-kind=postgresql
kogito.service.url=http://localhost:8080
- At last to create the necessary form required by the Dev-Ui upon startup, you need to download the IBM Business Automation Manager Open Editions 9.1.0 - Form Generation Tool CLI from Passport Advantage using the Part Number M0JV0EN. For detailed instructions on creating the form for the specified example, please refer to the IBM documentation available here.
- following command in the selected example directory (path to dir: kogito-examples/kogito-quarkus-examples/process-decisions-quarkus)
run - “mvn clean quarkus:dev”
- If Successfully executed you should be able to open the Dev-UI at http://localhost:8080/q/dev-ui
-
- With Dev-Setup you also get a Inbuilt UI similar to Business Central which would help Developer and Business Users to testout the business process seamlessly.
you can access it through the Tile named jBPM Quarkus Dev UI in Dev-UI mentioned above or http://localhost:8080/q/dev-ui/org.jbpm.jbpm-quarkus-devui/process-instances
Conclusions:
This example demonstrates a straight through process, highlighting the foundational steps for various integrations and tests. The primary purpose of this blog is to establish the basics, which remain consistent across different scenarios. Additional examples in the same folder will guide you through connecting a local environment to a Kafka Streams, testing a DMN decision, and human tasks, among other use cases. Please note that these examples are part of a technical release and may contain bugs. Thank you for your time and effort.
For any queries, please reach out to Sahith R Shetty, Technology Engineer – Automation at Sahith.R.Shetty@ibm.com.