Floor Plan Configuration

A customer can change certain aspects of a page or application by changing or updating the floor plans and its properties. These may include:

  • Adding or removing elements from the page including dynamic fields and records

  • Re-ordering the elements on the page or the tabs within the page

  • Updating the search criteria e.g. adding additional search component to the page or expanding existing quick search criteria

  • Updating existing sort or adding additional sort criteria giving user the ability to re-order the results based on a' criteria

  • Adding pre-filters to limit the number of search results

  • Loading a different floor plan based on a condition

Customizing a floor plan

A floor plan can be configured by using

  • Floor plan configuration page within the UI i.e. Configuration → System → Floor plans (Available for Policies and OIG)

  • Using the API on the floorplans resource

Creating a new floor plan

A custom floor plan can only be created for pages that already exists i.e. for which a system floor plan is already available.

For the custom floor plan the following properties are to be configured:

Code: Unique code to be defined for each custom floor plan

Description: The description for the custom floor plan

Page Name:

  • Use the same page name as the existing system floor plan for customized pages, the page may not be rendered if a different page name is used

  • For dynamic records recursive pages use \{object collection name}-\{dynamic field usage name} e.g. individualproviders-TestDynamicRecordUsage

Payload:

  • The updated payload containing the JSON structure that describes how the page should be rendered

  • Refer the individual template pages for JSON structure and available components within the template

Context based Condition: The context object condition under which the floor plan is used, add if required

Role based Condition: The role condition under which the floor plan is used, add if required

Priority: The relative priority when evaluating the floor plan conditions, add a numeric value else the plan will be given least priority

Template: Use the same page name as the existing system floor plan i.e.

  • 'Search Object' for pages using Search Object - List View template

  • 'Search Table' for pages using Search Object - Table View template

  • 'View And Edit Object List' for pages using View and Edit Object - List template

  • 'View And Edit Object Hierarchical Recursive' for pages using View and Edit Object - Recursive template

Resource: use the same values as defined in the system floor plan, using a different value may cause floor plan to not load or default to the system floor plan.

For more details on conditions refer Presentation configuration page

Key points to keep in consideration while configuring a floor plan

  • System floor plans cannot deleted or edited

  • Floor plans for new resources for which no existing page is available cannot be created

  • Application menu cannot be re-configured

  • Same floor plan template has to be used for custom floor plans i.e. if a system floor plan is defined for a resource to use search object - list view template then the user defined floor plan must use the same template for the search page, it cannot be re-configured to use search object - table view template

Customizing Floor Plan Components

This section explains on how to configure each component within the floor plan payload. Each floor plan template supports different components, for more details refer the guide for each template.

Used to display quick search on the page or tab

Supports search on string and integer type properties including reference types and arrays

For the array/object and reference type of properties, it is necessary to specify the exact attribute (nested property) on which the search must be performed

Optional Component

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

  • Tab component within View and Edit Object - Recursive

Use cases:

  • Add additional properties from the resource to the quick search

  • Add custom created dynamic fields to the quick search

For detailed description refer the quick search component

Example 1: Existing Quick search component for premium schedules Search Object -

List View page:

"quickSearch": {
    "properties": [
        {
            "name": "code",
            "sequence": 1
        }
    ]
}

Example 2: Adding additional string properties from the resource to the quick search i.e. amountInterpretation

"quickSearch": {
    "properties": [{
            "name": "code",
            "sequence": 1
        }, {
            "name": "amountInterpretation",
            "sequence": 2
        }
    ]
}

Example 3: Configuring quick search for a reference type property using nested properties i.e. adding search on schedule definition code

"quickSearch": {
    "properties": [{
            "name": "code",
            "sequence": 1
        }, {
            "name": "scheduleDefinition",
            "sequence": 2,
            "properties": [{
                    "name": "code"
                    "sequence": 1
                }
            ]
        }
    ]
}

Example 4: Adding quick search on a single value non time valid dynamic field i.e. customField

"quickSearch": {
    "properties": [{
            "name": "code",
            "sequence": 1
        }, {
            "name": "customField",
            "sequence": 2
        }
    ]
}

Note: The dynamic filed should be set to searchable under usages when creating

Advanced Search is used to provide the ability to have multiple search criteria

Displayed as a hyperlink which will display the advanced search dialog

Supports search on string (enums, boolean), integer, date, date time, referenced type properties

Optional Component

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

  • Tab component within View and Edit Object - Recursive

Use cases:

  • Add additional properties from the resource to the advanced search

  • Add custom created dynamic fields to the advanced search

For detailed description refer the advanced search component

Examples:

Example 1: Create an advanced search on resource properties - code(string), amountInterpretation(string) and a single value non time valid dynamic field i.e. customField

"advancedSearch": {
    "properties": [{
            "name": "code",
            "sequence": 1
        }, {
            "name": "amountInterpretation",
            "sequence": 2
        }, {
            "name": "customField",
            "sequence": 3
        }
    ]
}

Example 2: Create an advanced search on a reference type property with a filter i.e. scheduleDefination

"advancedSearch": {
    "properties": [{
            "name": "code",
            "sequence": 1
        }, {
            "name": "scheduleDefinition",
            "refType": {
                "type": "scheduledefinitions",
                "filter": "type.eq('P').or.type.eq('T')"
            },
            "sequence": 2
        }
    ]
}

Note: List of values floor plan should be available for the reference property

Auto Fetch

Can be used to perform default search on page load i.e. auto fetch records

Boolean property i.e. can be set to true or false

Optional Component

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

Use cases:

  • Enable/Disable auto fetch for a search or table page

Example: Enabling auto fetch for Boilerplate text page which is using View and Edit Object - List template

{
    "resource": "boilerplatetexts",
    "floorplan_object_01": {
        "actions": [
            "edit"
        ],
        "autoFetch": true,
        "quickSearch": {
            ...
        }
        ...
    }
}

Pre-Filter

Pre filter criteria can be defined to limit the results on a search page i.e. by defining a condition and only the results that meet the pre-filter criteria are displayed

Executed for all the searches as 'and' condition i.e. with quick and advanced search

Optional component, defined after actions

The filter conditions can be set using HTTP Query API grammar

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

Use cases:

  • Setting preFilter to 'brand.code.eq('ABC') for claims search page, will shown claims having the brand code 'ABC'.

Example: Applying a pre-filter to display only active dynamic logic

Example: Adding a pre-filter on Search Object - List View based dynamic logic

search page to only fetch active dynamiclogic records

{
    "resource": "dynamiclogic",
    "floorplan_search_listview": {
        "actions": [
            "add"
        ],
        "preFilter": "active.eq(true)",
        "quickSearch": {
            ...
        }
        ...
    }
}

Sort

Used to control the order in which the results are displayed

Sort component consists of:

Default sort

  • When specified, the list resource is sorted based on the properties and order as defined by the default criteria

  • The sequence property of each default criterion determines the order in which properties are considered for sorting

Criteria

  • Used to override the default sort criteria i.e. giving user the ability to re-order the results based on the selected 'sort' criteria

  • The criteria are shown in a drop-down, by default no property is selected as first pick. When a user selects a criteria, first the results are sorted ascending based on the selected sort criteria

Optional Component

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

  • Tab component within View and Edit Object - Recursive

Use cases:

  • Add additional 'sort' criterion on a page

  • Change default sorting order

For detailed description refer the sort component

Example: Configuring default sort on code with additional sort criteria on code, descr and active properties

"sort": {
    "criteria": {
        "properties": [{
                "name": "code",
                "sequence": 1
            }, {
                "name": "descr",
                "sequence": 2
            }, {
                "name": "active",
                "sequence": 3
            }
        ]
    },
    "default": [{
            "sequence": 1,
            "sortOrder": "asc",
            "properties": [{
                    "name": "code",
                    "sequence": 1
                }
            ]
        }
    ]
}

Filter

Filter criteria is defined to give users option to further filter the search results

A filter entry is used to restrict the search query, not to compose a new query i.e. if the user already provided an entry in the simple or advanced search, this input will be retained and extended with the filter input

Optional component

Available for:

  • Search Object - Table View

  • View and Edit Object - List

Use cases:

  • Adding new or additional filters on a page

For detailed description refer the filter component

Example: Configuring filters on Exchanges page i.e. adding filters for exchange status, integration type(reference property) and creation date(between) filters

"filters": {
    "properties": [{
            "name": "exchangeStatus",
            "sequence": 1,
            "displayType": "checkbox"
        }, {
            "name": "integration",
            "sequence": 2,
            "properties": [{
                    "name": "type",
                    "displayType": "checkbox"
                }
            ]
        }, {
            "name": "creationDate",
            "sequence": 3,
            "operator": "between"
        }
    ]
}

Labels

The label component is used to display property values in form of a label

A label can take in exactly one property and in case of array or a subResource the user can also specify a property of the list

A color can be specified for every property value including a default color in case the value is not in the list

Optional component

Available for:

  • Results in Search Object - List View

  • Rows in View and Edit Object - List

  • Rows in Search Object – Table View

  • Page level, tab(table) for View and Edit Object - Recursive

For detailed description refer the labels component

Example: Adding a label for exchange status and three different color indicators depending on the status

"labels": [{
        "sequence": 1,
        "properties": [{
                "name": "exchangeStatus",
                "sequence": 1
            }
        ],
        "defaultColor": "blue",
        "values": [{
                "value": "F",
                "color": "red"
            }, {
                "value": "T",
                "color": "grey"
            }, {
                "value": "C",
                "color": "green"
            }
        ]
    }
]

Pagination

The pagination is used to control the number of records displayed on a page

A maximum of rows as specified by the property pageSize are displayed. If pageSize is not set, then a default of 10 is applied.

The user can choose to display 5, 10 (default), 20, 50 or 100 results by using the 'Show' drop down list.

Available for:

  • Search Object - List View

  • Search Object - Table View

  • View and Edit Object - List

  • Results and table within tabs for View and Edit Object - Recursive

For detailed description refer the pagination component

Example: Setting default pagination to 20

"pagination": {
    "pageSize": 20
}

Results

The results component facilitates the display of a collection of objects

Every result (object record) is displayed in a single list row

Required component

Available for:

  • Search Object - List View

  • Tab component within View and Edit Object - Recursive

Each result/row consists of

  • Title

  • Label Component

  • Description

  • Actions

  • Set 1

  • Set 2

Use cases:

  • Adding or removing fields, labels from results

  • Add custom created dynamic fields to the results

  • Updating actions to make fields editable or read-only

For detailed description refer the results component

Examples:

Example 1: Configuring actions, title, description and labels i.e.

  • Allowing user to view, edit and delete a result.

  • Title set to 'code' property

  • Description set to 'message' property

  • Two labels i.e. for 'active' and 'severity' properties

"results": {
    "actions": [
        "view",
        "edit",
        "delete"
    ],
    "title": {
        "properties": [{
                "name": "code",
                "sequence": 1,
                "display": "always"
            }
        ]
    },
    "description": {
        "properties": [{
                "name": "message",
                "sequence": 1,
                "display": "always"
            }
        ]
    },
    "labels": [{
            "sequence": 1,
            "properties": [{
                    "name": "active",
                    "sequence": 1,
                    "display": "always"
                }
            ],
            "values": [{
                    "value": true,
                    "displayLabel": "pol_dynamiclogic_field_active_default",
                    "color": "blue"
                }, {
                    "value": false,
                    "displayLabel": "pol_dynamiclogic_field_inactive_default",
                    "color": "grey"
                }
            ]
        }, {
            "sequence": 2,
            "properties": [{
                    "name": "severity",
                    "sequence": 1,
                    "display": "always"
                }
            ],
            "defaultColor": "blue",
            "values": [{
                    "value": "F",
                    "color": "red"
                }
            ]
        }
    ]
}

Example 2: Updating sets to display single value non time valid dynamic field.

In the example below title is set to 'code', set1&2 contains message (resource property), SVNTV_NUM, SVNTV_CHAR, SVNTV_DATE (single value non time valid fields of number, character and date type respectively) and SVNTV_FC (single value non time valid field of type flex code)

"results": {
    "actions": [
        "view",
        "edit",
        "delete"
    ],
    "title": {
        "properties": [{
                "name": "code",
                "sequence": 1,
                "display": "always"
            }
        ]
    },
    "set1": {
        "properties": [{
                "name": "message",
                "sequence": 2,
                "refType": {
                    "type": "messages"
                }
            }, {
                "name": "SVNTV_NUM",
                "sequence": 3
            }
        ]
    },
    "set2": {
        "properties": [{
                "name": "SVNTV_CHAR",
                "sequence": 1
            }, {
                "name": "SVNTV_DATE",
                "sequence": 2
            }, {
                "name": "SVNTV_FC",
                "sequence": 3,
                "refType": {
                    "type": "flexcodes"
                }
            }
        ]
    }
}

Example 3: Updating sets to display single/multivalue dynamic records

i.e. adding medRep dynamic record with firstName, networkID and lastName fields

...
"results": {
    ...,
    "set2": {
        "properties": [{
                "name": "medRep",
                "sequence": 10,
                "properties": [{
                        "name": "firstName",
                        "sequence": 1
                    }, {
                        "name": "networkId",
                        "sequence": 2
                    }, {
                        "name": "lastName",
                        "sequence": 3
                    }
                ]
            }
        ]
    }
}
...

Table

The table component shows the object 'list' in a table view

Table component consists of

Actions

Rows

  • Actions

  • Columns

  • Labels

  • Region

Can be a read-only table in case of Search Object – Table View i.e. to display search results or an editable table in case of View and Edit Object - List allowing user to edit data within the table

Available for

  • View and Edit Object - List

  • Search Object – Table View

  • Tab(table) for View and Edit Object - Recursive

Use cases:

  • Update the columns to include single value non time valid dynamic field

  • Add dynamic records or multi-value dynamic fields to table region

  • Update the labels to display status etc.

For detailed description refer the table component

Examples:

Example 1: Configuring a table for a page using View and Edit Object - List template

  • Set Table action to 'add' allowing users to add new rows

  • Set Row level action to 'remove' allowing users to delete existing rows

  • Set table columns to display code and directoryName, hostName from typeConfig object within the resource

  • Configure Region component to display knownHostFile and maxBufferSize from typeConfig object (using nested region within set1)

"table": {
    "actions": [
        "add"
    ],
    "row": {
        "actions": [
            "remove"
        ],
        "columns": {
            "properties": [{
                    "name": "code",
                    "sequence": 1
                } {
                    "name": "typeConfig",
                    "sequence": 2,
                    "properties": [{
                            "name": "directoryName",
                            "label": "OIG_SFTP_DIRECTORYNAME_DEFAULT",
                            "mandatory": "true",
                            "sequence": 1
                        }, {
                            "name": "hostname",
                            "label": "OIG_SFTP_DEFAULT",
                            "mandatory": "true",
                            "sequence": 2
                        }
                    ]
                }
            ]
        },
        "region": {
            "set1": {
                "tiles": [{
                        "sequence": 1,
                        "properties": [{
                                "name": "typeConfig",
                                "displayType": "region",
                                "properties": [{
                                        "name": "knownHostsFile",
                                        "label": "OIG_SFTP_KNOWNHOSTSFILE_DEFAULT",
                                        "sequence": 1
                                    }, {
                                        "name": "maxBufferSize",
                                        "label": "OIG_SFTP_MAXBUFFERSIZE_DEFAULT",
                                        "default": 32768,
                                        "sequence": 4
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Example 2: Add a single value non time valid dynamic field as a new column i.e. 'SVNTV_CHAR'

"table": {
    "row": {
        "actions": [
            "view",
            "edit",
            "remove"
        ],
        "columns": {
            "properties": [{
                    "name": "name",
                    "sequence": 1
                }, {
                    "name": "SVNTV_CHAR",
                    "sequence": 2
                }
            ]
        }
    }
}

Region

The region is used to display an array of tiles grouping properties together

Region component consists of

Set 1

Tiles

  • Title

  • Properties

Set 2

Tiles

  • Title

  • Properties

Available for

  • Region within rows for View and Edit Object - List i.e. overflow region

  • Region within rows for Search Object – Table View

  • View and Edit Object - Recursive

Use cases:

  • Update the region to display dynamic fields and records

  • Have multiple pages with different region layout based on the use case

For detailed description refer the region component

Examples:

Example 1: Add a single value non time valid dynamic field i.e. 'SVNTV_CHAR' and 'SVNTV_FC' (flex code) in Set 2 of the region[source,json]

"region": {
    "set1": {
        "tiles": [{
                "sequence": 1,
                "properties": [{
                        "name": "code",
                        "sequence": 1
                    }, {
                        "name": "descr",
                        "sequence": 2
                    }
                ]
            }
        ]
    },
    "set2": {
        "tiles": [{
                "sequence": 1,
                "properties": [{
                        "name": "SVNTV_CHAR",
                        "sequence": 1
                    }, {
                        "name": "SVNTV_FC",
                        "sequence": 2,
                        "refType": {
                            "type": "flexcodes"
                        }
                    }
                ]
            }
        ]
    }

}

Example 2: Add a single value time valid dynamic field i.e. 'SVTVTEST' in Set 1

"region": {
    "set1": {
        "tiles": [{
                "sequence": 1,
                "properties": [{
                        "name": "code",
                        "sequence": 1
                    }, {
                        "name": "SVTVTEST",
                        "sequence": 2,
                        "properties": [{
                                "name": "singleValueFlex",
                                "refType": {
                                    "type": "flexcodes"
                                },
                                "sequence": 1
                            }, {
                                "name": "startDate",
                                "sequence": 3
                            }, {
                                "name": "endDate",
                                "sequence": 1
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Example 3: Add a multi value non time valid dynamic field

"region": {
    "set1": {
        "tiles": [{
                "sequence": 1,
                "properties": [{
                        "name": "code",
                        "sequence": 1
                    }, {
                        "name": "multiValueField",
                        "sequence": 13,
                        "displayType": "multivalue",
                        "properties": [{
                                "name": "value",
                                "label": "OIG_MULTIVALUEFIELD_CUSTOM_LABEL",
                                "sequence": 1
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Example 4: Add a single value time valid dynamic record

"region": {
    "set1": {
        "tiles": [{
                "sequence": 1,
                "properties": [{
                        "name": "code",
                        "sequence": 1
                    }, {
                        "name": "medRep",
                        "sequence": 2,
                        "properties": [{
                                "name": "firstName",
                                "sequence": 1
                            }, {
                                "name": "networkId",
                                "sequence": 2
                            }, {
                                "name": "lastName",
                                "sequence": 3
                            }, {
                                "name": "startDate",
                                "sequence": 1
                            }, {
                                "name": "endDate",
                                "sequence": 3
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Tabs

The tab component provides means to show the sub-resources in form of a tab for pages using View and Edit Object - Recursive template

tabResource must be defined for each tab

A page can have multiple tabs, the display order is controlled by sequence of each tab

A tab can have either results component or table component but not both

Tab component consists of

  • Actions (applicable only when results component is used)

  • Quick Search

  • Advanced Search

  • Sort

  • Results

  • Table

  • Pagination

Available for

  • View and Edit Object - Recursive

Use cases:

  • Update the page to show multi value dynamic record as a new tab

  • Customize existing tabs to change the layout or update actions or add dynamic fields etc.

For detailed description refer the tab component

Examples:

Example 1: Adding a multi value dynamic record as a new tab which uses table component

"tabs": [
        ...
        {
        "sequence": 2,
        "tabResource": {
            "listResource": "DemoRecordUsage"
        },
        "table": {
            "actions": [
                "add"
            ],
            "row": {
                "actions": [
                    "remove"
                ],
                "columns": {
                    "properties": [{
                            "name": "DemoColumn1",
                            "label": "OIG_DYNAMICRECORD_DEMOCOLUMN1",
                            "sequence": 1
                        }, {
                            "name": "DemoColumn2",
                            "label": "OIG_DYNAMICRECORD_DEMOCOLUMN2",
                            "sequence": 2
                        }, {
                            "name": "DemoColumn3",
                            "label": "OIG_DYNAMICRECORD_DEMOCOLUMN3",
                            "sequence": 3
                        }, {
                            "name": "DemoColumn4",
                            "label": "OIG_DYNAMICRECORD_DEMOCOLUMN4",
                            "sequence": 4
                        }
                    ]
                }
            }
        }
    }
    ...
]

Example 2: Adding a subResource as a new tab with results layout

"tabs": [{
        "sequence": 1,
        "tabResource": {
            "listResource": "integrationSteps"
        },
        "actions": [
            "add"
        ],
        "quickSearch": {
            "properties": [{
                    "name": "code",
                    "sequence": 1
                }
            ]
        },
        "results": {
            "actions": [
                "open",
                "remove"
            ],
            "title": {
                "properties": [{
                        "name": "code",
                        "sequence": 1
                    }
                ]
            },
            "description": {
                "properties": [{
                        "name": "subtype",
                        "sequence": 1
                    }
                ]
            },
            "set1": {
                "properties": [{
                        "name": "sequence",
                        "sequence": 1
                    },
                    {
                        "name": "destination",
                        "sequence": 1,
                        "refType": {
                            "type": "destinations"
                        }
                    }
                ]
            }

        }
    }
]

Note: For adding subResource tab with results component user must define a View and Edit Object - Recursive template based page for the subResource i.e. create a view and edit page for user to update the subResource properties.

Example 3: Converting a tab to use region from table component

Existing table based tab component for accessRestrictionGrantList sub-resource for Access Roles page

"tabs": [{
        "sequence": 1,
        "tabResource": {
            "listResource": "accessRestrictionGrantList"
        },
        "quickSearch": {
            "properties": [{
                    "name": "accessRestriction",
                    "sequence": 1,
                    "refType": {
                        "type": "accessrestrictions"
                    }
                }
            ]
        },
        "table": {
            "actions": [
                "add"
            ],
            "row": {
                "actions": [
                    "remove"
                ],
                "columns": {
                    "properties": [{
                            "name": "accessRestriction",
                            "sequence": 1,
                            "refType": {
                                "type": "accessrestrictions"
                            },
                            "nonupdatable": true
                        }, {
                            "name": "create",
                            "sequence": 2
                        }, {
                            "name": "retrieve",
                            "sequence": 3
                        }, {
                            "name": "update",
                            "sequence": 4
                        }, {
                            "name": "delete",
                            "sequence": 5
                        }, {
                            "name": "system",
                            "sequence": 6,
                            "readonly": true
                        }
                    ]
                }
            }
        }
    }
]

Step 1: Update the Access Roles page floor plan’s tab component to use results instead of table for accessRestrictionGrantList sub-resource

"tabs": [{
        "sequence": 1,
        "tabResource": {
            "listResource": "accessRestrictionGrantList"
        },
        "quickSearch": {
            "properties": [{
                    "name": "accessRestriction",
                    "sequence": 1,
                    "refType": {
                        "type": "accessrestrictions"
                    }
                }
            ]
        },
        "results": {
            "actions": [
                "open",
                "remove"
            ],
            "title": {
                "properties": [{
                        "name": "accessRestriction",
                        "sequence": 1,
                        "properties": [{
                                "name": "code",
                                "sequence": 1
                            }
                        ]
                    }
                ]
            },
            "set1": {
                "properties": [{
                        "name": "create",
                        "sequence": 2
                    }, {
                        "name": "retrieve",
                        "sequence": 3
                    }
                ]
            },
            "set2": {
                "properties": [{
                        "name": "update",
                        "sequence": 4
                    }, {
                        "name": "delete",
                        "sequence": 5
                    }, {
                        "name": "system",
                        "sequence": 6,
                        "readonly": true
                    }
                ]
            }
        }
    }
]

Step 2: Create a floor plan for accessRestrictionGrant sub-resource i.e. the page user will use to view and edit this resource

In this example the following properties were used when creating the new floor plan for the accessRestrictionGrant sub-resource:

  • Page Name: accessrestrictiongrants

  • Template: View And Edit Object Hierarchical Recursive

  • Resource: accessrestrictiongrant

  • Priority: 1

  • Enabled: True

Payload:

{
    "floorplan_object_00": {
        "title": {
            "properties": [{
                    "name": "accessRestriction",
                    "sequence": 1,
                    "properties": [{
                            "name": "code",
                            "sequence": 1
                        }
                    ]
                }
            ]
        },
        "actions": [
            "edit",
            "delete"
        ],
        "region": {
            "set1": {
                "tiles": [{
                        "sequence": 1,
                        "properties": [{
                                "name": "create",
                                "sequence": 2
                            }, {
                                "name": "retrieve",
                                "sequence": 3
                            }
                        ]
                    }
                ]
            },
            "set2": {
                "tiles": [{
                        "sequence": 1,
                        "properties": [{
                                "name": "update",
                                "sequence": 4
                            }, {
                                "name": "delete",
                                "sequence": 5
                            }, {
                                "name": "system",
                                "sequence": 6,
                                "readonly": true
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Example 3: Adding a multi value non time valid dynamic record as a new

tab which uses results component

Step 1: Define a new tab for the dynamic record using results component within the recursive page floor plan

"tabs": [
        ...
        {
                "sequence": 4,
                "tabResource": {
                    "listResource": "TestDynamicRecordUsage"
                },
                "actions": [
                    "add"
                ],
                "results": {
                    "actions": [
                        "open",
                        "remove"
                    ],
                    "title": {
                        "properties": [
                            {
                                "name": "Field1",
                                "sequence": 1
                            }
                        ]
                    },
                    "set1": {
                        "properties": [
                            {
                                "name": "Field2",
                                "sequence": 2
                            },
                            {
                                "name": "Field3",
                                "sequence": 3
                            }
                        ]
                    }
                }
            },
            ...
]

Step 2: Create a floor plan for dynamic record i.e. the page user will use to view and edit

In this example the following properties were used when creating the new floor plan for the 'TestDynamicRecordUsage' dynamic record on 'individualprovider' resource

  • Page Name: individualproviders-TestDynamicRecordUsage (format to be used: \{object collection name}-\{dynamic field usage name})

  • Template: View And Edit Object Hierarchical Recursive

  • (Floorplan) Resource: individualprovider

  • Priority: 1

  • Enabled: True

Payload:

{   "resource": "TestDynamicRecordUsage",
    "floorplan_object_00": {
        "title": {
            "properties": [
                {
                    "name": "Field1",
                    "sequence": 1
                }
            ]
        },
        "actions": [
            "edit",
            "delete"
        ],
        "region": {
            "set1": {
                "tiles": [
                    {
                        "sequence": 1,
                        "properties": [
                            {
                                "name": "Field1",
                                "sequence": 1
                            },
                            {
                                "name": "Field2",
                                "sequence": 1
                            },
                            {
                                "name": "Field3",
                                "sequence": 1
                            }
                        ]
                    }
                ]
            }
        }
    }
}

Note: Field1, Field2 and Field3 are the records fields defined for the dynamic record