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"
}]
}]
}
}
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:
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"
}]
}]
}
|