ODM on Docker!
If you are a DevOps enthusiast like me you probably love Docker and have been using it for a while. If you are new to Docker, please check this link to learn more.
IBM released an IBM ODM Docker image designed for developers and free to use, in this tutorial we are going to set it up step by step and gain full functionality of this amazing feature. My setup for running this tutorial is:
- Host machine: Windows 10 Pro
- Elementary OS (Ubuntu Dist.) Virtual Box Machine with Docker (I tried using my Alpine-Docker image but I encountered some extra configurations needed for the ODM JVM, contact me for more information about this subject)
- Eclipse Luna with Rule Designer for developers plugin
Steps:
- Install IBM ODM Docker image
- Open a new terminal window and run the following command: docker pull ibmcom/odm
- This will download all the ODM files and create the IBM ODM image. Depending on your internet conection this process could take a few minutes.
- Now run the following command to start the docker IBM ODM container instance:
docker run -e LICENSE=accept -p 9060:9060 -p 9443:9443 ibmcom/odm
- Note that we are passing an environment value to accept the license and mapping the ports 9060 and 9443. If you run with JVM memory problems use -m 1g or the amount of java heap size memory you can use for this container to run smoothly and faster.
- If everything went well you should see the beautiful IBM ODM logo printed in the terminal
- Now you are ready to use:
- Note that if you are using a Virtual Box VM like me you need to configure your networks and ip addresses to use the web applications in your host. In my case I use the 192.168.56.101 ip. See Host-Only adapter configurations and verify your networks by pinging the VM ip.
- Open a new terminal window and run the following command: docker pull ibmcom/odm
- Verify Installation
- Install Eclipse with IBM ODM plugin
- Download and install Eclipse.
- Navigate to https://marketplace.eclipse.org/content/ibm-operational-decision-manager-developers-rule-designer and drag and drop the install
- Follow the instructions and reboot Eclipse, you should now see the Rule Designer perspective:
- Test IBM ODM on Docker
- Create a new project or import an existing project, I am going to use the Recruitment Service demo that I’ve using on previous posts:
- Connect the main project to the Decision Center
- Enter the proper URL and credentials and test the conection:
- Navigate to the Decision Center and verify the Decision Service is uploaded correctly:
- Now we will test the deployment to the RES console, create a new Deployment Configuration
- Add a Decision Operation
- Add the ODM docker RES service
- Deploy the Ruleapp and select the recently added server
- Verify the ruleapp deployed correctly
- Create a new project or import an existing project, I am going to use the Recruitment Service demo that I’ve using on previous posts:
As you can see we setup an ODM distribution in minutes and got a project sync with Decision Center and deployed in the RES console. ODM on Docker is great, we can use all the Docker containers and images functionalities.
I hope you enjoy this tutorial and as always please feel free to contact me for any feedback or questions! Thank you!
- Published in Cloud, Decision Center, Docker, Rule Designer, Rule Execution Server (RES)
RPA: UiPath and ODM integration
In this technical tutorial we will have a look at the integration between RPA UiPath and IBM ODM. As we know ODM provides a decision server that the business can use to express rules while UiPath provides RPA to automate tasks, normally manual processes that uses repetitive tasks like data entry, making this integration a perfect collaboration.
To understand the basics of UiPath, please refer to this link.
- Testing the ODM project
- For this tutorial, I will use the ‘Recruitment’ project I made for previous posts. Check some details about the project here.
- Make sure your project is successfully deployed in the RES console and that the Sample Server is up and running.
- Open the RES console and navigate to your project Ruleset view:
- Click on ‘Retrieve HTDS Description File’, select ‘REST’ and click on Test:
- In my example I will test with 2 scenarios for the ‘Country’ value.
- Now go back to the HTDS page and click on ‘View’. Copy the URL, we will use it later in UiPath:
- Remember you can also use JSON format for your execution requests and external tools like SoapUI or Postman (my favorite) to test your services.
- Creating the UiPath project
- Now that we know our Decision Service is working properly, we will create a simple UiPath project that will call our service and print the response.
- We will use UiPath community version (free), you can download it from here.
- Open the UiPath studio and create a new Blank Project:
- Calling the ODM web service
- This is the tricky part, UiPath community edition doesn’t come with the SOAP or HTTP request activities by default, we will need to install them.
- Open the ‘Manage Packages’ option:
- Search for UiPath.Web.Activities and install it:
- You should be able to see the 2 options in the Activities Panel:
- Now we need to decide if we want to consume the web service as a SOAP request call or as a REST API method. Let’s talk about the 2 options in UiPath:
- SOAP: If we want to use SOAP we will encounter a problem if we are using custom objects, as of now, UiPath is not able to properly identify the methods and types for your objects in order to make the request in the correct format. You will an error like this when we test and invoke:
- There is a way to accomplish but it will require to create a custom activity, we will not cover that in this post but you can follow this guide to do it.
- REST: This is the option we are going to choose for this tutorial. We just drag the ‘HTTP Request’ activity.
- In the ‘End point’ field we paste our WADL url, we select the ‘POST’ method and click Ok.
- We need to create 2 variables, one for the input body and one for the response. We just select the ‘Variables’ option and assign ‘String’ to both:
- We need to include the XML expression for our Request in the first variable but UiPath studio will not recognize this as a proper VB Expression, so we need to adjust our ‘”‘ marks in order to obtain a valid XML, this is my value for the input variable:
- This will convert our XML in a proper String and UiPath will not give us any errors.
- We assign the 2 variables in the properties of the HTTP Request activity:
- We create a Message Box or we open Notepad to show our response (variable2):
- We run our project:
- SOAP: If we want to use SOAP we will encounter a problem if we are using custom objects, as of now, UiPath is not able to properly identify the methods and types for your objects in order to make the request in the correct format. You will an error like this when we test and invoke:
We have successfully called a ODM Service from an UiPath project and capture the response. In the next post I will show how to deserialize the XML and use the data for different purposes, stay tuned!
I hope you enjoy this tutorial and please feel free to contact me with any query or feedback, thank you!
- Published in RPA, Rule Execution Server (RES), UiPath
Connecting to external Database with ODM API
The IBM ODM Decision Center and the Rule Execution Server values are stored, by default, in a Derby database that comes with the IBM ODM suite installation. During a rules development project we sometimes need to access these values and insert them on an external database or update this external database accordingly. In this post I will show you how to connect to an external Datase with the ODM API in java and execute a simple query after collecting Decision Center values. You can use this method in your project with any values you need from the Decision Center.
To understand the basics of the ODM API, please refer to my previous post about the IBM ODM API here.
- Preparing Decision Center Values
- Connecting to an External DB
- Let’s create a new Java class with the Connection details.
- It is a good practice to have the value of the connection datasource in a properties file.
- Create a getConnection() method in the DBConnection class and add the following structure:
- Return the con variable and call this method from the main ODM API java class:
- Let’s create a new Java class with the Connection details.
Now you are ready to execute any statement in the external DB using the Decision Center variables. Query statement sample: ps = con.prepareStatement(“INSERT INTO db.dt VALUES (‘”+ruleProject.getName())
I hope you enjoy this tutorial and please feel free to contact me with any query or feedback, thank you!
- Published in Debug, Decision Center, Decision Table, Java, ODM API, Rule Designer
Working with the Decision Center API
In many IBM ODM rules implementation projects we are going to have requirements that involve working with the IBM ODM API. Even though the Decision Center has a lot of powerful features to customize our rules, there are some things that can only be achieve by working with the API, this means we will have to work with java code and be familiar with the ODM API classes to accomplish our goals. In this tutorial I will show you the basics of how to establish a connection with the Decision Center from the Rule Designer and retrieve valuable project information. You can apply this for your particular requirement.
Steps:
- Getting familiar with ODM API
- We first need to take a moment and review some of the most important classes in the IBM ODM API documentation (IlrSession) , it’s ok if you don’t fully understand how they work at first. It is all about practice.
- Enter here to access the documentation.
- Creating a Java project
- Establishing the decision center connection
- Create a new main class to test our remote ODM API decision center connection
- Our java class needs to implement the IlrSession class:
- Create your connection parameters, in my case:
- Now in our main class we need to create an object of the IlrSessionFactory class that implements IlrRemoteSessionFactory
- Lets call the connect method:
- Tip: be sure to work in a try/catch block to manage any connection exceptions
- Create a new main class to test our remote ODM API decision center connection
- Obtaining Decision Center data
Results:
We can work and obtain pretty much any data, object or method that is inside the Decision Center repository. We can also create our custom jar classes and repackage the teamserver.ear with it.
I hope you enjoy this tutorial and please let me now if you need help working with the ODM API and what do you want to see next. Thank you!
- Published in Decision Center, ODM API, Rule Designer
Editing business rules in Microsoft Office
IBM ODM Decision Center Business Console provides a powerful web-based decision table editor. Since V8.8.1, this includes exporting a decision table to Excel. But what if we are working in previous versions? or what if the business users still want to use Microsoft Office tools like Excel or Word to create/edit the rules? That is when Rule Solutions for Office comes in handy.
Rule Solutions for Office enables you to edit business rules in Microsoft Office documents called RuleDocs. You can update and share rules with RuleDocs, which can also provide supporting documentation and information such as the original policies for the rules. It works in conjunction with Decision Center, which serves as a workspace for business users to collaborate on authoring, editing, organizing, and searching for business rules.
In this tutorial I will you show the steps to set it up correctly and start editing your business rules in Office!
Steps:
- Go to <Your ODM Installation Path>\Rule Solutions for Office and install the plug in.
- Login to your Decision Center Enterprise Console, you will need to have the Decision Service project already synced with Decision Center.
- Tip: Click here to learn more about synchronizing with Decision Center from the Rule Designer.
- Select the Decision Service that contains the rules you need to edit.
- Tip: Remember to Select the Rule Project too.
- Now select the package with the Decision Table or Rule Action you want to edit. You will notice there is no option to edit the rule in Microsoft Office:
- That is because we need to add configuration parameter to enable the Rule Solutions for Office editing:
- Go to Configure and click “Installation Settings Wizard”
- Tip: you will need to be logged in with a user that has the rtsInstaller and rtsConfigManager role to see this option.
- Click “Step 5: Set Configuration Parameters” and click “New”
- Search for “Enable editing in Rule Solutions for Office” option and type “true” in the value textbox:
- Click Apply and Exit
- Go back to your rule package in the “Explorer” tab and now you should be able to see new options:
Results:
Now you are able to edit the rules in Word/Office! Explore the options that the Rule Solutions for Office provide, remember that the Rule will remain lock until you finish the editing. I hope this article helps you, please feel free to contact me with any feedback or questions! Thank you!
- Published in Decision Center, Rule Solutions for Office
- 1
- 2