oeCloud Decision Service

The decision service is an extension of the framework’s business rule engine. The rule engine functionality is exposed as a service thereby allowing you to run rules on data. This guide will walk you through getting started with decision services.

What you’ll build

You will build and execute a rule (decision service) meant for a typical loan origination process. We will only deal with the aspect of accepting or rejecting a customer’s loan application based on some standard calculations.

What you’ll need

  • You should know js-feel.
  • You should know DMN 1.1.
  • You are familiar with the concept of a decision table
  • You have gone through the guide on the Business Rule Engine
  • Some skill of modelling a set of executable statements as a graph (optional)

What you’ll learn

  • Information regarding the two framework models you’d interact with - DecisionGraph and DecisionService
  • What is a decision graph…
  • How rule chaining is possible
  • How to invoke a decision service…

How to complete this guide

What is a decision graph?

Formally a graph in computer science, is some network of nodes. Their relationship with each other reveal many interesting mathematical properties about that graph.

A decision graph is like the above. Each node is a decision. In evaluating that decision other related decisions need to be evaluated. This process repeats until we reach some end node. Hence there is a hierarchical arrangement of logic (or decisions).

For e.g. in the example that follows the Routing decision is dependent on Post Bureau Affordability and Post bureau risk category. The latter is again depedent on Application Risk Score, Post bureau risk category table, and … so on.

This is how rule chaining is achieved.

Writing your rule sets

Below are some decision elements you need to be familiar with.

The DMN specification recognizes many types of logic elements. The framework supports the following only:

  1. Decision table
  2. Boxed Invocation
  3. Boxed context

We will try to model a rule set typically used in any loan origination process. The main objective here is to determine whether to accept or reject a loan application based on customer details like age, monthly income, payment term, installment amount, etc.

The diagrammatic representation of this ruleset is as follows:

Routing Decision Requirement Graph

We will use the following file for the purposes of this guide:

RoutingDecisionServiceDRG.xlsx

This file models the ruleset shown above. You may also find this example in the DMN specification.

Referring the following document is optional. It contrasts how logic elements are represented in the spec and how we have to specify in a workbook.

Logic-Elements.pptx

The following sections assumes you have logged-in to your oe-cloud application and you are working with the api explorer.

Uploading ruleset

To upload we simply use the data uri format of the above file as shown below:

data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,UEsDBBQABgAIAAAAIQDPHGTpnQEAAN8KAAATAAgCW0NvbnRlbnRfVH ...

The above file is truncated for brevity. You will find the complete base64 in the payload below.

We post this data to the DecisionGraph model using the POST endpoint: /api/DecisionGraphs using the following JSON payload:

{
	"name" : "RoutingDRG",
	"graphDocument": {
		"documentName" : "RoutingDecisionService.xlsx",
		"documentData" : "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,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"
	}
}

Make note that we are naming this ruleset as RoutingDRG.

We get an http status code 200 saying that the HTTP Post operation was successful. We have created a decision graph (or ruleset) called ‘RoutingDRG’.

Note: the response has a data property which is a JSON document of FEEL expressions.

Next we have to specify the rule we want to expose as a service.

Note: Alternatively this upload can be done via the UI designer. Just browse the DecisionGraph model. And insert a new record there. You will be prompted with a UI to do a file upload there.

Defining the decision service

We need to specify the logic element we want to expose as a service. In this example, the desired decision we want to expose is Routing.

Make an HTTP Post call to the endpoint /api/DecisionServices with the following payload:

{
	"name" : "Routing",
	"decisions" : ["Routing"],
	"graphId" : "RoutingDRG"
}

You must get response with http status code 200 OK here. If you don’t chances are that decision(s) you are trying to expose is not there in the associated decision graph (or ruleset).

Note: Make sure you refer to the proper decision graph (via graphId). We can also expose multiple decisions as service (via decisions). The service we are exposing is called Routing

Executing the decision service

To execute the decision service. We perform a HTTP post with payload that resembles a customer application to the endpoint /api/DecisionServices/invoke/{name}

The name here is the service we previously exposed.

Post with the payload below:

{
  "Applicant data": {
    "Age": 51,
    "MaritalStatus": "M",
    "EmploymentStatus": "EMPLOYED",
    "ExistingCustomer": false,
    "Monthly": {
      "Income": 10000,
      "Repayments": 2500,
      "Expenses": 3000
    }
  },
  "Requested product": {
    "ProductType": "STANDARD LOAN",
    "Rate": 0.08,
    "Term": 36,
    "Amount": 100000
  },
  "Bureau data": {
    "Bankrupt": false,
    "CreditScore": 600
  }
}

The decision service responds with a result saying {"Routing" : "ACCEPT" }.