Skip to main content

v26.05: Transactions - Table

Transaction Tables provide flexible data tables for capturing operational data such as Actuals, imported from ERPs, uploaded via files, or entered directly through the grid. Each table is configured with its own dimensions, metrics, and layout, and supports row-level audit and data history.

Creating a Transaction Table

To create a Transaction Table:

  1. Navigate to the functional area in the Explorer pane.

  2. Select the + AddTransactions > Table.The Table layout side pane opens on the right with an empty data grid.

  3. Enter the Name and Title on the configuration panel.

  4. Add Dimensions (Global or Local) and Metrics under the Fields section.

  5. Configure the Layout — assign fields to Rows or Filters as needed. Enable or disable the Allow Duplicate Rows option under Options.

  6. Click Create Table on the L2 header to create the table.

    Note: Create Table is used only the first time, to create the table. To save any subsequent configuration changes (such as adding fields, changing the layout, or modifying options), click Publish.

  7. Click Publish to make the table available.

Once published, users can enter data directly through the grid, import data from Excel or CSV files, or create snippets for focused data operations.

v26.05:  Saving Data from the Grid

Users can now enter, update, and save data directly from the Transaction Table grid. Previously, data could only be populated through Import and Export. With this enhancement, designers can type values into cells, insert rows in place, update existing rows, and save — without exporting and re-importing the file.

To enter and save data from the grid:

  1. Open the Transaction Table.

  2. Edit values directly in the grid:

    Cell type Behavior

    Metric cells

    Editable. Enter the value directly or select from the dropdown depending on the metric type. Editing overwrites the previous value.

    v26.08:  Local dimension cells

    Editable. Type text for text-type dimensions, or select from the dropdown for List-type dimensions. Values can be up to 50 characters.

    Global dimension cells

    Read-only. Cannot be edited from the grid.

    Note: Dimension cells display in grey and metric cells in white, matching the sheet grid view.

    Note: v26.08:  Local dimension values can be up to 50 characters. During import, any value exceeding 50 characters is rejected with a logged error, while valid values continue to import normally.

  3. To insert new rows:

    1. Right-click any row and select Insert row below. The Add Rows popup opens pre-populated with Number of rows to add.

    2. Update the count if more than one row is needed.

    3. Select Add [n] Row to insert. New rows are inserted below the selected row with blank cells, and are immediately editable.

    Note: Each new row must have values for all required dimensions (global and local) and at least one metric.

  4. To clear a cell value, right-click the cell and select Clear cell, or select the cell and press Del.

    Note: If all metric values in a row are cleared and saved, the row is removed from the grid after saving.

  5. Select Save on the L2 header to save the changes. On successful save, the message Changes saved successfully. is displayed.

    • Save triggers validation. New rows with only dimensions selected (no metric value) are rejected.

    • When Allow Duplicate Rows is not enabled, rows that exactly match an existing global-dimension combination are rejected.

    • If multiple rows are inserted with mixed valid and invalid entries, warnings identify the invalid rows and all entries are cleared.

Note: When Allow Duplicate Rows is enabled, updating a value in a duplicate row affects only that specific row; other duplicate rows are independent. All value updates generate an audit log entry and update data history in the event log and the default snippet.

v26.08: Message on saving/importing data for parent and locked member

v26.08 adds save‑ and import‑time validation for Transaction Table grid edits and imports.

When you save from the grid or import data, the system validates every row and blocks the operation if any row:

  • targets a locked version — message: Cannot Input as Version is locked.

  • targets a parent (non‑leaf) member — message: Cannot input data to Parent member.

  • contains a local dimension value that exceeds the allowed length — message: Maximum X characters allowed for local dimension "<dimension name>" (local limits increased to 50 characters).

The save/import is all‑or‑nothing; no partial writes occur and the grid/import preview is not cleared. All entered values remain so you can correct flagged rows and retry. When multiple violations exist, only the highest‑priority message is shown in this order: Locked version → Parent member → Over‑limit value. Failed attempts are recorded in the Event Log with user, timestamp, and reason.

Choose an unlocked version or clear the row; select a leaf member via the selector or clear the value; shorten pasted local dimension values to the allowed length and retry.

v26.05: Creating a User-Defined Input Snippet

Transaction Tables now support user-defined Input snippets. Previously, every table exposed only the three default snippets — Original Table, Entire Data, and History. Users can now create a fourth, user-defined snippet of type Input for focused data entry, import, and export against the parent table.

An Input snippet inherits its metrics, dimensions, and Allow Duplicate Rows setting from the parent table as read-only values that stay in sync automatically.

To create an Input snippet on an existing Transaction Table:

  1. Open the Transaction Table.

  2. Select Snippet on the L2 header. The Snippet list opens.

  3. Select Create Snippet at the bottom of the list. Four snippet types are listed.

    Note: Only Input is active in this release. The other three are reserved for future use.

  4. Select Input. A blank grid opens in the center, with two side panes on the right — Input Snippet Layout and Dimensions.

  5. Configure the fields in the Input Snippet Layout pane:

    Parameter Description

    Name

    Internal name for the snippet. Same validation rules as Sheet snippet naming.

    Title

    Display title for the snippet. Same validation rules apply.

    Functional Area

    Read-only dropdown displaying the parent Transaction Table’s functional area.

    Enable Access Control

    Checkbox. Selected by default.

    Private

    Checkbox. Selected by default. Clear the checkbox to make the snippet public.

    Layout Type

    Dropdown. Table is the only available option.

    Layout

    Configure Rows and Filters sections. See note below for layout behavior.

    Note: Layout behavior depends on the parent table’s duplicates setting. When Allow Duplicate Rows is enabled on the parent table, all global dimensions, local dimensions, and metrics auto-populate in Rows and cannot be moved to Filters. When not enabled, items default to Rows; global dimensions can be moved to Filters (fixed members required when in Filters); local dimensions and metrics cannot be moved to Filters. Within the layout, items can be reordered, and Preferences can be added, edited, and reordered — same as in the parent Transaction Table.

  6. Review the Dimensions pane. All entries here are read-only and mirror the parent Transaction Table:

    • Metric — lists all metrics from the parent table.

    • Dimensions — lists all global and local dimensions from the parent table.

    • OptionsAllow Duplicate Rows mirrors the parent table’s setting.

    Note: Global dimensions can be expanded to view the read-only Allowed Members selection. Any change to dimensions or metrics in the parent table automatically reflects here.

  7. Select Publish on the L2 header.

After publishing, the snippet appears in the Snippet list under the Public or Private tab, depending on the Private checkbox. A Save option then appears on the L2 header for saving subsequent data changes.

Note: Data entry and import in the Input snippet follow the same behavior and validations as the parent Transaction Table (see Saving Data from the Grid ).
Use the Import option on the L2 header to import data; the import flow, mapping, validation, and duplicate handling are identical to Transaction Table import.

Note: A Transaction Table can have multiple Input snippets, each independent. Snippets can be moved between Private and Public visibility through standard snippet management actions. Data saved through any snippet remains consistent and accessible across all sources.

v26.06: Import Data to Transaction Table from Task

Users can import data into a transaction table directly from a Task using the Upload File action under Transaction Table Actions. This eliminates the need to navigate to the transaction table to perform the import.

Adding an Upload File Action to a Task

To add an Upload File action:

  1. Open the task in edit mode.

  2. Under Calculations & Data Flow, click Add Data Action.

  3. In the selector, expand Transaction Table Actions and select Upload File.

  4. Click OKAY. An Upload File section is created in the task.

To select the target transaction table:

  1. In the Upload File section, click + Add Table.

  2. Browse the hierarchy: App > Functional Area > Folder > Transaction Table.

  3. Select a table. Only one table can be selected at a time. The selected name populates the Table field.

To configure dimension filters:

  1. Click the filter icon next to each global dimension.

  2. Select one of the following for each dimension:

Option

Description

Context

Value is resolved from the execution context at runtime.

User Selection

User is prompted to select a member at execution.

Member

A specific member is selected and used as the fixed input on every import.

The Time dimension supports multi-member selection. All other dimensions allow single leaf-member selection only.

v26.06: Importing Data from a Task

To import data at execution:

  1. Open the task for execution.

  2. In the Upload File section, click Add and select a file. Supported formats: .csv and .xlsx. Multiple files can be uploaded; they are imported in upload order.

  3. For any dimension set to User Selection, select the required member.

  4. Click Calculate.

Files in unsupported formats generate a warning entry in the log and are not imported. Duplicate record handling follows the table's settings: if duplicates are disabled, the last value is retained; if duplicates are enabled, all records are imported.

Reviewing Import Results

After import, a log entry appears showing the user name, timestamps, and a status icon (Success, Warning, or Failed). Click the log entry to open Task Log Details, which includes the calculation log, dimension context used during import, a message summary (workbook name, records uploaded, success count, and rejected count), a downloadable log file, and Model Audit Info showing one row per metric in the format tablename.metricname with its record count. Click any row in Model Audit Info to view that metric's history.

Import outcomes are also reflected in the Event Log.

v26.06: Add Rows from L2 Header

A + button on the L2 header of the transaction table provides an additional way to insert rows. Both this button and the right-click Insert Rows Below option remain available; they produce identical results.

To add rows using the L2 header:

  1. Open the transaction table.

  2. Optionally, select a cell in the row below which the new rows should be inserted. If no cell is selected, rows are appended at the end of the table.

  3. Click + on the L2 header.

  4. In the dialog, enter the number of rows to add. The value must be a whole number of 1 or greater. Entering 0, a negative number, a decimal, or non-numeric characters shows the warning: "Must be at least 1 row."

  5. Click Add [n] rows to confirm, or Cancel to close without adding rows.

For unauthorized users, the + button is visible but disabled.

 

v26.07: Transaction Table Import: Allow Column Selection

The Transaction Table import process now supports flexible column mapping, custom data region definition, and multi-format file support. Users can map columns to dimensions and metrics in any order, define exactly where imported data begins in a file, and import both CSV and Excel formats natively—all without restarting the import session or losing configuration.

Flexible Column Mapping

Users can now reassign any column to a different dimension or metric on-the-fly using the pencil icon in the import pane, eliminating the need to restart the import process if columns are in the wrong order. This flexibility speeds up data preparation and reduces import cycles.

To map columns in the Transaction Table import pane:

  1. Open the Transaction Table and click Import on the toolbar.

  2. Upload a CSV or Excel file. The import pane displays the data grid and Rows section.

  3. In the Rows section, click any cell in the import grid to select it.

  4. Click the pencil icon next to the dimension or metric you want to assign to that cell.

  5. The column is immediately assigned and the display updates (e.g., "Column A" → "Column D").

  6. Repeat for other columns as needed.

Mapping rules

  • Columns display as positional references (Column A, B, C…) regardless of file header names

  • Many-to-one mapping allowed (multiple dimensions/metrics can use the same column)

  • All dimensions and metrics must have a source column before import proceeds

  • Blank columns beyond the data range auto-fill remaining unmapped dimensions/metrics

Default auto-mapping

On file load, columns are mapped automatically:

  1. Header-name match (primary): If a file header name matches a dimension/metric name exactly, that column is assigned automatically

  2. Sequential fallback (secondary): Unmatched columns are assigned left-to-right

Override any auto-mapping using the pencil icons.

Map based on option:

The Map based on dropdown remains available and functional, allowing you to choose the mapping strategy for your import. This setting works alongside the flexible column mapping feature to provide additional control over how columns are matched and assigned.

Configuring Data Start Cell

Users can now define exactly where their data begins within a file, eliminating the need to manually edit or preprocess files with leading rows, metadata, or non-standard layouts. This flexibility allows the import process to handle files with titles, headers, or other content in the first rows without requiring file modification.

To set the Data Start Cell:

  1. In the import pane, locate the Data Start Cell field.

  2. Click the pencil icon or select a cell in the import grid (the cell address appears automatically, e.g., A5).

  3. The cell address defines both start row and column. Rows above and columns to the left are excluded from import.

Example: Set Data Start Cell to B3 to skip rows 1–2 and column A. Data import starts from row 3, column B.

Validation:

  • Data Start Cell must be a valid cell address (A1, B2, AA10, etc.)

  • Data Start Cell row must be strictly below any header row

  • Invalid entries show an inline error; save is blocked

CSV and Excel File Import Support

Users no longer need to convert CSV files to Excel before importing—the import process now accepts both CSV and Excel files natively with full feature parity.

To import CSV or Excel files:

  1. Open the Transaction Table and click Import on the toolbar.

  2. Click the file picker (defaults to CSV and Excel formats only).

  3. Select a CSV or Excel file from your system and click Open.

  4. CSV files import with full mapping and duplicate handling support (identical to Excel).

  5. If you select a non-CSV/Excel file, an error message appears: "Only CSV and Excel files allowed" and the Import button is disabled.

CSV files and Data Start Cell

If you previously set a Data Start Cell for an Excel file but then upload a CSV file, the system automatically resets the Data Start Cell to A1 because CSV files always start reading from cell A1. A warning message appears: "Header start cell updated to A1". This prevents the workflow from failing due to incompatible cell settings between file formats.

v26.08:  Excel formatting warning during import

When importing an Excel file, if any column contains formatting that changes the imported value from its visible appearance (such as dates, percentages, accounting notation with brackets, scaled numbers, fractions, or formulas), a warning identifies the affected columns. Click Okay to import using the underlying cell values, or Cancel to abort and re-upload the file as CSV. CSV files contain no formatting, so imported values match the visible display. Cosmetic formatting such as currency symbols, thousands separators, and font styling does not trigger the warning.

 

Automatic Duplicate Handling

The import process automatically detects the target transaction table's duplicate setting and applies the appropriate duplicate-handling strategy. This ensures imported records match the table's duplicate policy without manual configuration.

If the target table has duplicates enabled:

  • Dropdown shows: Insert new records (auto-selected, only option)

  • All source records, including duplicates, are imported as new individual records

  • No deduplication occurs

If the target table does NOT have duplicates enabled:

Dropdown shows three options. Select one before importing:

Option

Behavior

Retain Last Value (default)

For records sharing the same dimension key combination, only the last occurrence from the source is imported. Earlier duplicates are discarded.

Aggregate All Records

For records sharing the same dimension key combination, metric values are summed and a single consolidated record is imported per unique key.

Reject Duplicate Records

Any record whose dimension key combination appears more than once is rejected entirely. Only unique-key records are imported.

Note: Duplicate handling is applied to the data region defined by your Data Start Cell setting.

Improved Error Handling and Pane Persistence

The import pane stays open across sessions and provides enhanced error reporting, allowing you to refine your import configuration and troubleshoot issues more effectively.

Error handling:

  • Partial imports log as Warning (not Fail), preserving error details for faster troubleshooting

  • Non-CSV/Excel files are blocked with clear messaging

Import pane behavior:

  1. Click the collapse arrow or outside the import pane to pause work. The session remains active.

  2. Click Resume Import or the import notification to reopen the pane with your settings preserved.

  3. Important: Custom column mappings do not persist across separate import sessions. Each new import re-runs default auto-mapping.

Was this article helpful?

We're sorry to hear that.