Best Of
Avoid using date/time substitution formulas in backup custom paths
When configuring a Backup Data Model Procedure step, administrators can define a Custom path for storing backup files. While substitution formulas add flexibility, using date or time variables in the Custom path can cause issues with the backup retention process.
The Issue
If you use Substitution Formulas that include date or time variables — such as @Date , or @Datetime — in the Custom path field, the backup directory name will change with each execution (for example, daily).
This causes a problem for the “Expiration Days” feature, which relies on a consistent folder path to identify and delete old backups. When the path changes every day, the retention logic cannot detect previous backups, leading to unused files accumulating over time.
Example Scenario
If one or more backups were performed on July 20th, 2023, and the backup step was executed again on July 28th, 2023 with the Expiration Days property set to 7, backups created on or before July 20th should be deleted.
However, if the Custom path contains a time- or date-based variable (e.g., @Date or @Time ), the folder name changes every day — like /Backup/2023-07-20/, /Backup/2023-07-21/, etc. — and the retention mechanism cannot identify which backups are older than seven days. This prevents cleanup and can cause unnecessary storage growth.
Supported Substitution Formulas
You can safely use the following Substitution Formulas in the Custom path field:
- @User
- @UserName
- @Database
- Environment variables such as %bss% and %computername%
Best Practice Recommendations
To ensure your backup and retention processes work correctly:
- Avoid using any time or date substitution formulas (@Date , @Datetime ) in the Custom path.
- Use consistent, static folder paths that remain the same across executions.
- Prefer environment variables such as %bss% and %computername% for defining context-aware, stable backup directories.
Example:
%bss%\Backups\
%bss%\%computername%\DataModelBackups\
These approaches ensure backup paths stay consistent, allowing the Expiration Days retention feature to function properly and prevent unnecessary storage usage.
Select Entity Based on Cube Option
Hi,
I would like to suggest a new feature on select based on cube on procedures.
Quite often I need to select tuples based on cube even if the sum of the tuples over a period = 0. In order to do so we have to create a Temporary cube.
Could we imagine an option just like keep mode to set select tuples even if the sum of these tuples = 0 ?
Integrating Board and Scribe: A Smarter Approach to Planning and Documentation
Author: Edward Ervin, Financial Systems Product Owner for Global Switch and Community Captain.
Documentation isn’t often the task we look forward to. While we all recognise its importance, without the right tools, it can feel tedious and time-consuming. And it’s not just about writing things down - it’s about reaching users effectively and ensuring the information is accessible and easy to understand.
That said, documenting what you’ve built - and how to use it - isn’t just a nice-to-have; it’s essential. Without clear guidance, even the most brilliant solutions can become blockers, slowing progress and creating unnecessary frustration.
In this post, I’ll share some of the approaches I’ve used for documentation, the pros and cons of each, and why integrating Board and Scribe turned out to be the right choice for us - and why it made the documentation phase of our latest delivery something I didn’t dread.
Previous Solutions and Their Trade-offs
Before landing on the right approach, I experimented with several methods to make documentation more user-friendly. Each had its strengths - but also its limitations. Here are three examples:
1. Adding Labels and Text Directly on Screens in Board
This method involves placing instructions directly above or near the sections where users input data. It’s a common approach and seems practical, but it can quickly become cluttered when dealing with complex processes or multiple decision points
(Image 1: simple standardised workflow interface with text instructions)
- Pros:
- Quick and easy to implement.
- Instructions are visible where users need them.
- Cons:
- Users still need to navigate to the correct screen.
- Requires careful screen design to ensure logical step flow.
- Can lead to cluttered layouts and limited space for detailed guidance.
- Updating instructions can be cumbersome.
2. Creating Separate Documentation Pages or PDFs
Another approach is to create standalone documentation - PDFs or pages in tools like SharePoint or Confluence. This allows for detailed explanations but introduces friction.
- Pros:
- Plenty of space for detailed content and visuals.
- Easy to structure and organise.
- Can be shared widely across teams.
- Cons:
- Users must leave the application to access instructions.
- Harder to keep updated alongside system changes.
- Risk of outdated or forgotten documentation.
3. Creating RTF Cubes to Store and Edit Documentation Within Board
This is a more development-heavy solution. It involves creating RTF cubes dimensioned by screen and/or workflow task. You can then display documentation directly within Board using a button that opens a tab with the relevant content.
- Pros:
- High flexibility in user interaction.
- Seamless experience - documentation stays within the application.
- Users can access precise guides without searching.
- Cons:
- Time-consuming to set up.
- Requires ongoing maintenance of entities and cubes.
- Needs someone familiar with Board to manage documentation.
- Can become complex if workflows or screens change frequently.
Using Scribe for Documentation
- Scribe is a tool that captures workflows using annotated screenshots. It works on clicks - each click captures a step, and Scribe auto-generates annotations. Editing is straightforward, and the result is a clean, user-friendly guide.
- For quick guides, you can finish in under five minutes. For more polished, end-user-ready documentation, it might take 10 - 30 minutes per process - still a major improvement over traditional methods.
How to Use Scribe in Board
- Create a cube to store the embed code (a basic text cube works).
- Add a screen with a Web Viewer object linked to that cube.
- Select one intersection in the cube, and your document displays beautifully inside Board.
- Pro Tips:
- Zoom screenshots fully out before embedding.
- Set embed settings to Large for clarity.
- Use Slides for navigation, though Scrolling and Video modes are also available.
- Export options include Word, PDF, and more.
- Use Pages to combine multiple guides into one document - also embeddable.
(Image 2: Example Help Guide showing the user a full end to end process, embedded in a Webviewer – Step 4 in the process)
(Image 3: Example Help Guide showing the user a full end to end process, embedded in a Webviewer – Step 5 in the process)
(Image 4: Example Help Guide showing the user a full end to end process, embedded in a Webviewer – Step 6 in the process)
- Pros:
- Highly flexible and professional-looking.
- Easy to edit and maintain.
- Multiple sharing options: embed in Board, export, or share via link.
- Versioning is seamless—new versions save as copies, so embed codes remain valid.
- Built-in draft/publish workflow ensures users only see finalised content.
- Cons:
- Licensing required:
- Creator licence for editing and creating.
- Viewer licence for access (affordable, but still a factor).
- Some user-side tweaks needed, like enabling cookies to avoid frequent logins.
- Licensing required:
Final Thoughts
Integrating Board and Scribe has transformed how we approach documentation. It’s no longer a chore - it’s a streamlined, user-friendly process that enhances clarity and reduces friction. While no solution is perfect, this combination strikes a strong balance between usability, maintainability, and professionalism.
In the past, if I had adequate time, I would have opted for option 3 (RTF cubes within Board), and if not, option 2 (separate documentation pages or PDFs). However, this new method of integrating Scribe with Board enables many of the pros of both those methods - such as in-app guidance and rich, structured content - without the associated negatives like heavy development effort or fragmented user experience.
If you’re looking to improve your documentation workflow, I’d highly recommend exploring this integration. It might just change how your team feels about documentation too.
And whilst Scribe is the tool we found, there are alternatives out there. For our use case, however, Scribe offered the right support, the right features, and came in at an acceptable price point.
Have you used Scribe in conjunction with Board? If so, how was your Scribe experience?
Advanced Smart Import
1. ABSTRACT
The Smart Import object facilitates the upload of data (master data, transactional data) to Board. Before, Dataviews with line number entities or CSV blob cubes with export/import procedures were required to upload the data. In addition, a complex check logic (if implemented at all) was required to detect wrong codes or whether the user is allowed to upload certain coordinates between dimensions.
The Smart Import object provides a master data and value validation check before data is loaded. Therefore, the user knows immediately why rows are rejected respectively the full upload is not successful.
This article looks at different use cases and how they can be managed with the smart import. It is not a replacement for the general manual but adds examples/clarifications for certain topics.
2. CONTENT
The smart import respects the data model security settings. When the data entry is restricted for a certain perimeter due to the global data model security settings and cube visibility/cube data entry restrictions the smart import does not allow the data entry.
Figure 1: Data Entry restricted on Smart Import
Dataflows and data readers do not respect this restriction (on purpose).
2.1 Add New Members
By default, Board sets the Rule to “Add new Members”. Therefore, set this setting to “Discard New Members”. Only if you like to allow adding new members then leave it on the default. This is a critical topic.
Figure 2: Data Behavior Rules - Drop Down Menu
Figure 3: Data Behavior Rules - Element does not exist
2.2 Discard Outside Selection
The screen selection can be used to restrict the upload perimeter, i.e. if a year is uploaded which is not part of the screen selection, then the upload runs into an error. By default, this setting is deactivated, but (by default) it should be activated.
Figure 4: Discard Outside Selection - Setting
Figure 5: Discard Outside Selection - Error
2.3 Client Filters
When the upload e.g. only takes place for ONE element of an entity which is set by the screen or security selection, then it should not be required for the user to provide the value. An example: The planning is open for the current year and only values are allowed to be uploaded for this year. Therefore, the option Client Filter can be used instead of requiring the year as an additional information column.
Figure 6: Client Filter - Settings
Figure 7: Client Filter – Overview (Left: Without vs. Right: Client Filters used)
Figure 8: Client Filter - Error - Multiple Selections
This method can be used also for the User entity, if further data processing is required and the concurrency of the upload process must be guaranteed. In this case, the User entity is also part of the cube dimensions. Keep in mind: For unrestricted Administrator users the selection to one element of the user entity must be set, e.g. using a pager, on open screen trigger etc.
2.4 Maintaining Descriptions
The smart import can be used to maintain the description of elements. As these settings are different from a data reader, it is shown here.
- Select the Entity.
- Choose Description (a second line is generated)
- Map Data Model and Source
Figure 9: Description - After step 1
Figure 10: Description - After step 2
2.5 Relationships
The smart import can be used to change relationships between entities. While it might be intended for the creation of new master data, this might not be wanted for master data maintenance. Please make sure that relationships cannot be changed if this is not your intention, i.e. entities of the same tree with a connection should not be loaded.
2.6 Algorithm - Reference
Beside input columns as source, algorithms can also be used. In the algorithm a reference to a column can be made, like this example using the column header name:
Figure 11: Algorithm Column Reference
Also, the column letter can be used in the formula, like this: if(a=”01”,20,10)
Preferably, the column letter should be used as column headers might be changed due to UI requirements.
2.7 Blank Cells
Smart import like data entry, do not differentiate between NULL and zero. While in the layout, there is the option to flag it, in the smart import is required an additional configuration.
If there’s the specific request to differentiate between zero and NULL, the following formulas must be applied:
if(ISBLANK([@Amount ]),0,if([@Amount ]=0,1E-30,[@Amount ]))
In this way:
- if the user is loading/input a blank cell, a 0 will be loaded (0 and NULL have the same meaning in Board), users will see and empty cell.
- if the user is loading/input a "0", Board will load the 1E-30, so users will see "0" in the Board Tables.
- in case of any other value, it is loaded as usual.
3. Upload cubes vs. Direct Upload
There might be reasons why dedicated upload cubes need to be used instead of the final target cubes in the smart import. Please keep in mind: The Smart Import can do a merge natively. For upload cubes this process needs to be implemented manually.
Reasons:
- Data preparation (E.g. Monthly Columns, further calculations), further export/import processes (Please be aware of possible Concurrency topics)
- More detailed rejection information (e.g. data entry is not possible because process is closed > could also be provided as information on the upload screen instead)
- Upload confirmation before processing
- Dialogs
- Backup uploaded values
- Screen selection can be manipulated (E.g. selecting a different year)
- Disconnection between upload and input cube
No valid reasons:
- Less dimensions in the smart import due to selections (E.g. on the year) > Use Client Filter
3.1 Concurrency
Concurrency (users upload data at the same time and use the same perimeters) can become a particularly important topic for the smart import. In the case the smart import object is used to upload the values directly to the target cube without any data preparation/processing, then no further actions are required.
But if separate upload cubes are used and users could run it at the same time, the process should be secured against concurrency.
Measures:
- (Consideration) Add a user entity to the upload cubes. Build the security to include the user entity and its restriction (e.g. Select User = @User ). Take care of exceptional cases where no restriction is set, e.g. Administrator users.
- Clear the upload cubes after the data processing (with selections).
- Continue data processing with virtual cubes.
4. Months in columns
The smart import object does not provide a function to upload month column values. Therefore, it is required to e.g. create 12 monthly upload cubes (Year, Customer, Product, [User]) – one for each month.
Figure 12: Monthly Columns
The data needs to be prepared after the upload in a trigger procedure – to map it to the corresponding month in the target cube.
5. Multiple input types
The smart import object allows three ways of input:
- Manual Input
- Copy & Paste
- Excel (is deactivated by default. Should be enabled “by default”)
The Manual Input can be supported by adding suggested values (Always click “Save Suggested Values” at the bottom after changes.). In the case the target entity is used, Code & Description can be used, and it will be successful in the upload. The downside: Copy & Pasting the line to another row will not work. For the manual input also the “Allow free input” can be allowed. Then only the code is allowed for entities. Copy & Paste is not restricted by this setting.
Figure 13: Manual Input - Suggested Values
Figure 14: Manual Input - Suggested Values - Copy & Paste Error (1st line works, 2nd not)
Copy & Paste and Excel Upload always expect the Code for an entity. Otherwise, it will not work.
6. Replacing Line Number Layouts
The old DataView Line Number layouts (i.e. a number entity was created for having rows in the layout) can be replaced by the smart import. Create upload cubes with all required entities. Add suggested values for the entities by using the target entity. In the case the number is used for the element creation, the auto-incremental setting can be used for a dedicated upload entity.
Example New Asset/Investment:
- Value Cube (Auto-Incremental Upload Entity, Cost Center, Asset Class, Month, User) (Month = Start Month)
- Asset Description Cube (Auto-Incremental Upload Entity, Cost Center, Asset Class, Month, User) (Month = Start Month)
- A Save trigger procedure will Export/Import the information and information will be loaded to the final target entities, e.g. Investment entity, Investment Cost Center entity, …
- Target Cubes: Start Month & Value (Year, Investment)
The dedicated upload entity must not be cleared if used.
7. Creating new master data
The smart import can also be used for the creation of new master data – as mentioned before. As this can create a mess in the database, this should be well considered. Also, it should be defined who should be able to do this.
The smart import object does not contain natively any security for entities; therefore the creation cannot be prevented when the user can access the smart import. Therefore, it should be considered to add an invisible cube to the smart import which has some security (data model security) in place. If the data entry is not allowed on this cube, then smart import and creation of new members will fail.
Figure 15: Security on new Master data – Smart Import
Figure 16: Security on new Master data - Settings
8. Same entity multiple times in the row/upload
A special case is the reference of the same entity multiple times in the same row.
Example:
Product | Sales Unit | Production Unit | Conversion Factor |
|---|
This upload should be able to provide the manual input (i.e. drop-down selection available, no new creation of elements) and Copy&Paste/Excel-Upload. In this case two new entities were created above the target unit entity – especially for the smart import. Two upload cubes were created, one using the Smart Import Unit 1 and the other Smart Import Unit 2. In the save trigger procedure the values were copied to the required target cubes on the target unit entity.
Dynamic Header - QuickLayout appearence
At the Qick-Layout View of a DataView, its showing the code an not the column names like in the DataView:
Enhancements for the Gantt Chart Object
We are developing a solution for a construction & infrastructure use case where users manage project budgets on a weekly basis. These users rely heavily on Gantt-style planning, but the current Gantt Chart object lacks key functionality needed for effective adoption.
We would like to propose following improvements:
1. Configurable Hover Pop-Up
Ability to reduce the font size or disable the hover pop-up entirely.
2. Alternate Row Highlighting
Support for alternating row colors to improve readability.
3. Synchronized Scrolling
Option to connect scrolling with other objects such as Dataviews.
4. Follow Time Selections
The Gantt Chart should apply the time selections made on the screen.
5. Support for Unbalanced Hierarchies
Proper grouping and indentation when using unbalanced hierarchies, including expand/collapse functionality.
6. Drag-and-Drop Editing
Ability to adjust start/end dates of bars directly by dragging.
These enhancements are crucial for user adoption in project-driven environments.
Container with Expand/Collaps function (Pin/Unpin) to increase screen capacity
Hi all,
I received a requirement from a client to be able to hide and unhide the area which usually includes selectors/pagers/procedure buttons.
Often times solutions have a vertical or horizontal pane which includes selections and procedure. The client requested me to build a function that this pane can be hidden on command to maximize screen area for dataviews or other objects (in case of a vertical pane it would mean that once hidden the objects also move to the left).
Ideally the objects that stay on the screen would increase in width.
I think it would be a nice functionality to allow optimal screen usage.
Varying entity formatting, in Block Format, per column within a single DataView
As the title notes, we are requesting more flexible varying entity formatting options in the Block Format, including the ability to format individual columns and customize total borders. An example of the need: Having the ability to edit total borders. There are only cell/column borders.
add "no total" summary option for dataview algorithm block
- What is your idea?
To add the ability to hide the total and grand total value for an algorithm block in a dataview.
This ability doesn't exist actually (Board version 14.4):
- What specific problem are you trying to find a solution to, or what new scenario would this idea respond to?
There are KPIs which are calculated in dataviews using block algorithm whose total or grand total row doesn't make sense on a business perspective, even using the available summary options (average, count, calculated…). It can be calculated percentages for example.
I wish it would be possible to hide the total and grand total rows, as it is already possible for ALL other (Cube, Entity, Ranking, Rule) block types.
- What workaround have you found and used so far (if any)?
If there is an entity set by Row in the dataview's axes → set this entity also as a block (assume block b) → create an algorithm block c with this formel:if(len(b)>1, a, 0)(assuming the numeric data is in block a) → set summary mode to calculated.
So two blocks more to hide total row in block b…
See this message: https://community.board.com/discussion/comment/21229?utm_source=community-share#Comment_21229
Add a Sub-Flag for Tuple Cleanup After Limitation in Dataflow
Currently, the option "Limit calculation to tuples of the cube" restricts calculations to a subset of tuples, but it does not address tuples that were previously loaded into the database and are now obsolete due to this limitation.
I propose adding an additional flag (or a sub-flag linked to the existing one) that allows users to choose whether to perform a cleanup/deletion of all tuples that no longer meet the limitation criteria.
This feature would help maintain data integrity, reduce unnecessary storage usage, and improve overall system performance.





























