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