Term Specific Insurable Classes

This sample use case extends the Term a Group use case and enables users to term specific insurable classes. This requires a user to specify the list of insurable classes to consider.

The following additional parameters can be defined:

The following parameter configurations ensure that a field of type date, labeled as Term Date is displayed on the user interface.
Table 1. Term Availability for Specific Insurable Classes
Field Configuration

Usage Name

groupAccountInsurableClasses

Display Name

Insurable Classes

Data Type

Char

Mandatory?

true

Multi Value?

true

Pick List

groupaccountinsurableclasses

Filter

groupaccount.code.eq({$requestContext.code})

This configuration ensures that a pick list of group account insurable classes defined for the group is displayed. The macro request contains (a comma-separated) list of selected group account insurable class IDs.

The user can start the macro from the user interface page or directly make the following request to the Macro Integration Point:

{
  "parameters": [
    {
      "name": "termDate",
      "value": "2022-01-01"
    },
    {
      "name": "groupAccountInsurableClasses",
      "value": "12323243, 2323232, 24434343"
    }
  ],
  "macroDefinitionCode": "TERM_GROUP",
  "requestContext": "{ \"id\": \"26551\" }"
}

Alternatively, a selection floorplan can be attached to the macro definition to allow users to select the group account insurable classes from the UI.

Floorplan Configuration
{
  "floorplan_selection": {
    "title": {
      "label": "SELECT_RECORDS_TO_TERM"
    },
    "properties": [
      {
        "name": "code",
        "sequence": 1
      },
      {
        "name": "descr",
        "sequence": 2
      },
      {
        "name": "groupaccountinsurableclasses",
        "sequence": 3,
        "properties": [
          {
            "name": "insurableClass",
            "sequence": 1,
            "refType": {
              "type": "insurableClass"
            }
          },
          {
            "name": "displayName",
            "sequence": 2
          }
        ]
      }
    ]
  }
}

In this case, the payload constructed from the UI to start the macro will be different from the parameter-based approach.

Payload to start macro integration
{
  "parameters": [
    {
      "name": "termDate",
      "value": "2022-01-01"
    }
  ],
  "macroDefinitionCode": "TERM_GROUP",
  "requestContext": {
    "_comment": "For readablity purpose this is shown as JSON. The request expects this to be passed as string.",
    "id": "26551",
    "code": "ORACLE",
    "descr": "Oracle Corp.",
    "groupAccountInsurableClassList": [
      {
        "id": "12323243",
        "insurableClass": {
          "id": "18435",
          "links": [
            {
              "href": "http:[requestContext:root]/generic/insurableclasses/18435",
              "rel": "canonical"
            }
          ]
        },
        "displayName": "Employee"
      },
      {
        "id": "2323232"
      },
      {
        "id": "24434343"
      }
    ]
  }
}

Similarly, Oracle Insurance Gateway integration gets the group account insurable class information either in the parameters or in the requestContext object, depending on the macro configuration.

This flexibility allows for a user interface design that is best suited for the use case at hand.