Open Editions

 View Only

Try Out the All New IBM Business Automation Manager Open editions Version 9.1 locally

By Sahith R Shetty posted Thu July 11, 2024 09:15 AM

  

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.

  1. Collaborative Environment: The new Canvas feature allows developers and business users to collaborate on projects within a single enterprise repository, improving communication and efficiency.
  2. 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.
  3. 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.
  4. 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:

  1. (Optional) If you are working on Windows have Git-bash installed and run all the commands in it.
  2. 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'


  3. 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”.

  4. Have Maven v3.9.6 installed locally and set in M2_HOME variable.
    verify by running 
    mvn -v”.
  5. Add Both M2_HOME and JAVA_HOME to PATH variable.
  6. Install VsCode code editor and install BAMOE Developer Tools extension for VsCode.
  7. Create IBM id, Purchase License so that you get access to Passport Advantage Online for Customers, where you can download IBM software.

Setup:

  1. 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.
  2. Add BAMOE dependencies(bamoe-9.1.0-maven-repository.zip) downloaded from Passport Advantage to the local Maven repository. Refer the docs here.
  3. 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.
  4. Once you enter the folder, The Structure should look like below.
  5. 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.
  6. Let’s select an example for instance process-decisions-quarkus and open a terminal in the selected example folder.
  7. 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

  8. 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.

  9. following command in the selected example directory (path to dir: kogito-examples/kogito-quarkus-examples/process-decisions-quarkus)
    run - mvn clean quarkus:dev
    Once run successfully should see the following output
  10. If Successfully executed you should be able to open the Dev-UI at http://localhost:8080/q/dev-ui
  11. You can Refer the Readme.md at the selected sample example directory (kogito-examples/kogito-quarkus-examples/process-decisions-quarkus/README.md), to test the endpoint locally with sample payload.
    Input to Start the process:
    {
        "driverId": "12345",
        "violation":{
            "Type":"speed",
            "Speed Limit": 100,
            "Actual Speed":140
        }
    }

    you can create a created your custom UI if required to connect to same for a better look and feel.

  12. 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
    On the left, you can select your desired pane, such as Processes, where you can filter for active or completed tasks, among other options, or choose Tasks, Jobs, or Forms. Within the Process Instance pane, you can also select Process Definition, allowing you to invoke flows without interacting with the Swagger.

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.


#DecisionManagerOpenEdition

3 comments
118 views

Permalink

Comments

Thu November 07, 2024 08:28 AM

Hi @Sahith R Shetty

I use this dependencies on my build.gradle. In dev mode this generate my bpmn endpoints correctly but when i build to put in container i got this warnings and the endpoints not generated

Unrecognized configuration key "kogito.apps.persistence.type" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "kogito.process-instance-events.enabled" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "kogito.addon.tracing.process.enabled" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo 
Unrecognized configuration key "kogito.addon.tracing.decision.enabled" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "kogito.generate.rest.processes" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo       
Unrecognized configuration key "kogito.data-index.blocking" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "kogito.generate.rest.decisions" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo       
Unrecognized configuration key "kogito.persistence.type" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "kogito.data-index.domain-indexing" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo    
Detected a split package usage which is considered a bad practice and should be avoided. Following packages were detected in multiple archives: 
- "org.kie.kogito.decision" found in [org.kie.kogito:kogito-api::jar, org.kie.kogito:kogito-dmn::jar]

You can help me please?

Fri July 12, 2024 02:21 AM

Thanks @Richard Bourner for pointing it out

Fri July 12, 2024 12:27 AM

Docker Desktop is not approved for use at IBM. In addition to Podman, another option is Rancher.