Selection

This floor plan template makes it possible to select multiple object details and generate a JSON object based on the user selection.

Use Cases

This template provides the ability to select the attributes of a business object.

Below are few examples of pages that use this template:

  • End User macro

Page Layout and Components

Presentation Configuration

A user can change certain aspects of a page by changing or updating the floor plans and their properties. This can be done by customizing the components within the floor plan’s JSON payload.

For additional information refer to the Floor Plan Configuration page.

JSON Template (Payload Structure)

The following JSON outlines the structure of the foldout template.

{
  "floorplan_selection":{
     "selection":[{
       "title":{
         "label":""
       },
      "properties":[{
        "filter": //for list properties
        "label":
        "sequence"
      }]
  }]
 }
}

Page Layout

  • Selection template showing group client details TODO

Components

This template can have the following components:

Title

  • Optional component

  • Shown as the main title

  • "label" specifies a boilerplate key and its value shows up as the title

  • When not specified, resource singular name forms the title

Properties

  • Mandatory component

  • The listed property is shown as a Value - Key pair along with a checkbox.

  • List properties are shown collapsed by default. When a list property refers to a nested list property each row can be expanded further to show the details at nth level. A user can select the top level to indicate that everything is part of the selection or can indicate a data record at a specific level.

For example, consider the following configuration in the context of a group client.

{
  "floorplan_selection":{
       "title":{
         "label":"SELECT_RECORDS_TO_TERM"
       },
      "properties":[
        {
            "name": "code",
            "sequence": 1
        },

        {
            "name": "descr",
            "sequence": 2
        },
        {
            "name": "groupClientAdjustmentList",
            "sequence": 3,
            "properties": [{
                "name": "scheduleDefinition",
                "sequence": 1,
                "refType": {
                    "type": "scheduledefinitions"
                }},
                {
                    "name": "startDate",
                    "sequence": 2
                },
                {
                    "name": "endDate",
                    "sequence": 3
                }]

        },
        {
            "name": "groupAccountList",
            "sequence": 4,
            "properties": [{
                "name": "code",
                "sequence": 1
                },
               {
                "name": "Display Name",
                "sequence": 1
                },
                {
                "name": "groupAccountAdjustmentList",
                "sequence": 2,
                "properties": [{
                    "name": "scheduleDefinition",
                    "sequence": 1,
                    "refType": {
                        "type": "scheduledefinitions"
                    }},
                    {
                        "name": "startDate",
                        "sequence":2
                    },
                    {
                        "name": "endDate",
                        "sequence": 3
               }]

             }]
        }]
    }
}

This configuration results into the following view:

selection floorplan image

The system creates a JSON object based on the user selection. The object structure follows the generic GET representation. The JSON object (irrespective of whether it is configured or not) always contains the id of the selected record.

In the above example, if a user selects the following:

  • Code of the group client

  • Group account ORCL1

  • An adjustment from another group SCD_001

This results into the following JSON object being created.

 {
    "id": "121",
    "code": "ORACLE",
    "descr":"Oracle Corp.",
    "groupAccountList": [
      {
        "id": "26551",
        "code": "ORCL1",
        "displayName":"Oracle Group01",
        "groupAccountAdjustmentList": [
          {
            "id": "98",
            "code": "SCD_001",
            "startDate": "2021-02-02",
            "endDate": "2022-02-02"
          },
           {
            "id": "34",
            "code": "SCD_002",
            "startDate": "2021-02-02",
            "endDate": "2022-02-02"
          },
          {
            "id": "56",
            "code": "SCD_003",
            "startDate": "2021-02-02",
            "endDate": "2022-02-02"
          }]
      },
      {
        "id": "26551",
        "code": "ORCL2",
        "displayName":"Oracle Group02",
        "groupAccountAdjustmentList": [
          {
            "id": "109",
            "code": "SCD_001",
            "startDate": "2021-02-02",
            "endDate": "2022-02-02"
          }]
      }]
}
  • Single value attributes (top level) are a part of the JSON only if they are selected by the user.

  • For details all the attributes are a part of the JSON if the detail is selected by the user.

  • Selecting at the top level ensures all the details get selected.

  • If there are more than 5 detail records, a filter option is provided to the user. This filter allows searching on all the configured properties of the detail. The client side filter looks for a match on value for any of the properties.