Data Objects Layer

      Data Objects Layer

        Article summary


        The Assette Data Objects Layer (DOL) arranges data exposed by the Data Blocks Layer and implements all presentation logic required to expose data as marketer-friendly datasets called “data objects”. The data object are then used by the Assette Authoring Tools area, enabling end users to author content templates.

        The data objects also expose parameters called “data settings” that enable end users of the Authoring Tools to configure the behavior of template artifacts at different levels as Smart Pages, Smart Docs, and Web Docs.

        Below are some of the key responsibilities of the data blocks layer.

        • Define derived columns.

        • Define grouping, sorting, and aggregation calculations.

        • Define different row types and rules to derive them.

        • Define conditional formatting rules.

        • Define legends and legend colors for charts.

        • Define dynamic/static column headings.

        • Define dynamic/static title and footnotes.

        • Make all the above aspects manageable via data settings, to minimize the number of required data objects and hence the number of required smart pages and smart docs.

        • Enrich data block’s data settings (parameters) with information on possible options, default values,

          dependencies, etc. to give best user experience in Authoring Tools.

        Data Object Output

        All data objects should return output in one of the following output types,

        Data Table – Returns a list of records (list of sets of key-value pairs) as the output. The output of this type of data object can be used to generate tables and charts.

        Text – The output of this type of data objects can be used to generate labels or HTML contents. Language Objects are a special type of data object with text output.

        Values – Returns a single record (a set of key-value pairs) as the output. The output of this type of data objects can be used to fill answers to DDQ type of questions.

        Image – Returns a binary image together with its mime type.

        In addition to this main output, data objects return diagnostic details like timing information, diagnostic logs, etc. to help diagnose any data object related issue. This information can be viewed using data object preview page in Data Object Editor.

        Data Settings

        Data Settings are the settings (parameters) that the content authors can configure when they are creating shells in Authoring Tools. They can also make some of these settings generation-time, so that these values can be provided at generation time.

        There are two classes of data settings.

        • Data Settings passed to underlying data blocks, so that they can be used by the data blocks to perform calculations and other data transformations or pass down to the data sources (as parameters of database queries or API calls) to filter out the output data set.

        • Data Settings used by the data object to control its behaviors. These data settings can be further categorized into two subcategories,

          • Data Settings defined by the author of the data object. These data settings do not have their own behaviors unless these values are used in expressions that control the behaviors of the other parts of the data object. These settings are used to enable content authors to control the data object behaviors, so that a single data object can be used to achieve different outputs.

          • Data Settings that are automatically created by the data objects layer. The data objects layer automatically creates these data settings to get the user inputs, when there is more than one option to choose from (e.g., when more than one sorting or grouping columns are added).

        To provide better user experience for content authors, it is possible to configure data settings to show a set of options to choose from. These option key-value pairs (values are the display names of these options) can come from two sources. They are,

        • DO author defined options – data object author defines the key-value pair.

        • Data Blocks – Key-value pairs are retrieved using the output of a data block. One output column must be mapped to the key while another column is mapped to the value (display name).

        Data Setting options can be configured to be dependent on the selected values of some other data settings.

        Data Block Output Variables

        In addition to returning its main output, the data blocks can return a set of output variables as key-value pairs, to provide additional information about the parameters used for its internal process (e.g., currency, benchmarks, account inception date, etc.). This information can be used by the data object to update its output based on some business rules (e.g., create footnotes that give information about account inception date, benchmarks used, etc.).


        If the data object output is ‘data table’, then these are the columns in that table. If the output of this data table is used to fabricate a chart, then these columns can be configured to be either series of the chart or categories of the chart.  If the data object output is ‘values’ (a set of key-value pairs), then the columns define the key to each key-value pair.

        Data object columns can be classified into two classes as,

        • Existing Columns – The columns that are returned by the source data block.

        • Derived Columns – The columns with values derived from the values of the existing columns and input parameters. These derived columns are constructed to meet the display requirements of the data objects.

        Data Objects Layer can control the display name (in Authoring Tools), column heading (in the generated output) and the display format of these columns.

        Data Objects Layer would drop any existing column if the underlying data block layer did not return that column. This helps the data block layer to drop columns, if they are not meaningful for the current output (e.g., certain performance periods will not be meaningful, based on the inception date of the account).

        Row Types

        “Row types” is the key concept used by Authoring Tools to define table formatting. Authoring Tools map rows in physical tables (PowerPoint, Excel, Word, or Web) to these row types to define its formatting rules using each platform specific formatting features.

        Authoring Tools support two classes of tables,

        • Mapped Order Tables

        o   Used to fabricate tables with fixed number of rows (e.g., Performance, Characteristics)

        o   The content author can decide the exact order of the rows and their formatting.

        o   If a certain row type is not returned by the data block (e.g., ‘Benchmark 2’ row will not be there for the accounts with a single benchmark) then those rows will be automatically dropped.

        • Retrieved Order Tables

        o   Used to fabricate tables with dynamic number of rows (e.g., Holding Details)

        o   The generated table will contain the row types in the same order that they were returned by the data object.

        o   The row types are used to define how each row should be formatted using native features of that content.

        o   Row types are used to format different rows with title, column headings, category headings, category summary, footnotes, etc. differently.

        o   The output rows can be conditionally formatted by conditionally assigning row types to them.

        Internal Variables

        Internal variables are temporary locations to store the results of intermediate calculations or decisions taken based on some business rules. Variables helps to,

        • Simplify the definition of complex expressions by breaking them down into smaller steps.

        • Since no-code editors do not allow multiple if else conditions within a single expression, variables enable to achieve the same behavior by breaking it into multiple expressions.

        • Improve calculation performance by avoiding having to perform the same calculation multiple times.

        • Enables calculating aggregate values (sum, average, min, max, any, count, first, etc.) and use that result for other calculations (e.g.  weighted average) or decision making (e.g., adding footnotes).

        These variables can be classified into two classes as,

        • Global Variables – The variables whose values are calculated using data settings and output variables of the data block and are accessible across the data object.

        • Row Scoped Variables – The variables whose values are calculated using the column values of each data row (and global variables, data settings and output variables of the data block) and therefore are only accessible when processing individual data rows of the data table.

        Grouping and Sorting and Aggregation

        It is possible to define grouping and sorting orders of the output in Data Objects Layer. If more than one grouping column or sorting columns are defined, then data settings are automatically created to retrieve the preferred grouping column or sorting column from the content author.

        Users can define the preferred aggregate function (sum, average, min, max, first, etc.) for each of the columns. These aggregated values can be added to the summary row of the table. When the grouping is configured, it is possible to add the group level summary values to either the group header or the group summary row.

        Title and Footnotes

        It is possible to define the table or chart title and the footnotes at the data object level. These can be configured with fixed values or can be dynamically defined using data setting values, data block output variables and global internal variables.

        Usually, the footnotes are conditionally added based on the internal variables (whose values are derived from the values of the output data table) or the data block output parameters.


        Legends are used when the data object output is used to generate charts. Any column in the data block output table or any row scoped internal variable can be mapped to legend title and legend color.

        Data Block Output Variables

        Output Variables are the values returned by the data object to Authoring Tools as set of key-value pairs, in addition to its main output (data table, text, image, etc.). These values are used by Authoring Tools to support,

        • Coupled shells – shells that display the values of output variables of the other shells in the same page.

        • Conditional Disclosures – Disclosures that display language fragments based on the values output variables of the other shells in the same page or the same smart doc.