K2BTools 10 - Release notes


In K2BTools 10 we worked in two fronts:

  1. Creating more flexible applications, allowing the developer to customize the UI more than ever, and adding more flexibility to UI's generated with K2BTools.
  2. Simplifying K2BTools' instance, making it more usable so that developers can be more productive.

The first objective was acheived via four major features: Edit modes in K2BEntityServices, Multiple Filters, StringSearch Filters, and Dynamic Layous. These and other new features are shown below.

For the second objective we focused on finding common pain points when using K2BTools, and looked for more elegant solutions in each case. Those improvements are grouped in the "Usability Improvements" section.

Important: In order to upgrade to K2BTools 10, licenses must be updated as described in Upgrading K2BTools licenses.

Edit Modes in K2BEntityServices

In this version, we worked to improve the generated UI for the K2BEntityServices pattern, to adapt it better to some scenarios.

For this purpose we are adding two new UI's (selectable using the "EditMode" property in WorkWith and SubWorkWith nodes) that are better than the standard UI for cases where the amount of attributes in the transaction is small. In the new UI's the user does not leave the Work With interface to create, edit, or delete nodes.

The new values for "Edit Mode" are the "Popup", and "TwoPane".

EditModePopup EditModeTwoPane
Inserting a Country. Edit Mode = "Popup" Inserting a Country. Edit Mode = "Two Pane"

The developer can choose to update the "Edit Mode" property for existing pattern instances. Also, the selection can be done at a Transaction object level, using the "Edit Mode" property in the transaction. That property's value is used as a default in all Work With's and Sub Work With's that reference the transaction.

For more information see Edit Mode property.

Multiple Filters

Filter nodes now include an option to define "Multiple" filters (using the "Filter Type" property). These filters can be used to search for several values of a certain attribute.

Multiple filters come in two flavours (defined in the "Multiple Filter Type" property): Combo, and TagsCollection.

MultipleFilterCombo MultipleFilterTags
Multiple Filter Type = "Combo" Multiple Filter Type = "TagsCollection"

We recommend using "Combo" when the candidate values set is relatively small, and "TagsCollection" when the set is large, or when the user wishes to always see the values selected in the filter.

Note that in both cases the candidate set (the set of values that can be selected) can be defined using a ControlInfo node. In the case of "Combo" multiple filters, all properties available in a Dynamic Combo can be used. In the case of "TagsCollection", the control info will apply to the variable used to add items to the collection. In that case, if the user enters descriptions in the filter, those descriptions will be shown as the Tag's contents.

For more information see Multiple filters.

StringSearch filters

Filter nodes now include an option to define "StringSearch" filters (using the "Filter Type" property). These filters can be used to search for a character value in several attributes. When defining a StringSearch attribute, the developer must specify which attributes should be used in the filter. See String Search filters for more information.

Dynamic Layouts

This version adds support for Dynamic Layout objects in K2BWebPanelDesigner. This feature allows developers to define common UI patterns and reuse them in their application. Some Dynamic Layouts are distributed with K2BTools, as shown in this image.

Sample Dynamic Layouts

These layouts are different from Layout objects used in previous versions of K2BTools. From now on, those layout objects are called "Basic Layouts".

Improvements in Basic Layout Objects

In K2BTools 10, a new object type is defined, called "Basic Layout". This new type of object must be used to define layout objects for K2BTools Patterns or K2BWebPanelDesigner. Those objects define the basic structure for the object, indicating where all its UI components are to be located.

In previous versions, Layout Objects were common Web Panels with the structure definition. Layout Objects referenced in Pattern instances will be converted to the new object type automatically.

If manual conversion is necessary, the developer may use the "Is Layout" property in the Web Panel.

In this version, when saving a "Basic Layout" object, K2BTools performs consistency checks to ensure that the contents of the object are valid.

Included Menu

IncludedMenu is a new type of node in the K2BMenu Pattern. Using nodes of this type the developer can include options in a menu that are not defined in its instance.

This was implemented to support two scenarios:
1 - Splitting a menu definition among several pattern instances. For example, in a multi-module application, creating one instance for each module and then joining them together.
2 - Adding dynamic regions to the menu. For example, adding a region with contents based on the currently logged in user.

K2BLoadActivityList: only include custom activities

In previous versions, the K2BLoadActivityList procedure procedure included all activities defined by K2BTools. These permissions include both standard activities (Insert, Update, Delete, and Display) and custom permissions defined as "User Activities" in action nodes.

In K2BTools 10, an option is included so that K2BLoadActivityList now only returns custom activities. This is done using a new property in K2BEntityServices Settings called "Only Include Custom Activities", located in the "Template" node.

Fast Start GAM version 6.0 calls K2BLoadActivityList to update application permissions in the GAM database.

Usability Improvements

Defaults in modes

In Previous K2BTools versions, Modes (WorkWith) nodes had several properties whose possible values were "<default>", "True", and "False". If "<default>" was selected, the value was read from the settings object.

Modes83 Modes10
K2BTools 8.3 K2BTools 10

Use in X

In previous K2BTools versions, columns in a WorkWith or SubWorkWith had a property called "Use In" where the developer could choose in which of the associated objects the column should be used.

UseIn83 UseIn10
K2BTools 8.3 K2BTools 10

This was simplified, splitting this property into 3 different properties (one for each object: Work With, Report, and Export), and allowing the developer to make a True/False choice in each one.

Dataprovider parm rules

In this version, when adding a grid from a Data Provider the parm rule can include "Count" and "Skip" variables instead of "PageSize" and "PageNumber".


In this version, when using K2BTools patterns a new "Show Preview" action is included.

Show Preview Action

Convert Grid to FreeStyle Grid

A new action is included in K2BTrnForm and K2BWebPanelDesigner to convert a Grid node to a FreeStyleGrid node and viceversa.

Web Panel Designer forced apply

A new action is included in K2BWebPanelDesigner to update the web panel's contents to the Web Panel's definition.

Apply Designer action

Layout object properties location

In this version, Layout properties were moved from the instance's root node to the node that uses each layout. This allows the developer to choose different Basic Layouts for each interface.

Master Page

In this version, the "Master Page" property was removed from K2BEntityServices Settings.

Also, the Master Page properties in K2BEntityServices instances are simpler to use, and calculate their default value based on the selected Basic Layout object.

After Navigation

In K2BTools 8.3 the developer could customize how a transaction should behave after it is confirmed. That could be done using the "After Insert", "After Delete" and "After Update" properties in Transaction (Entity Services) nodes.

In K2BTools 10, those properties have been moved to the Modes (WorkWith) node. This enables the developer to choose different behaviours in different contexts.

Also, the properties do not accept the "<default>" value. Instead, the default value is shown in the instance itself.

Lastly, the same properties were added to Transaction objects. These properties can be used to set a default value at a Transaction Level. In turn, these properties default value is read from K2BEntityServices Settings as in previous versions.

When migrating a KB to K2BTools 10, current values are copied to their new locations automatically.


Minor upgrades


  • GeneXus15 compatibility.
  • BugFix: When using text actions in HTML UI in WebPanelDesigner an error was shown, saying: "Action does not include a definition for a variable with id ActionControl."
  • BugFix: In a new KnowledgeBase creating a new WebPanelDesigner object raised a validation error, because basic objects are not in the knowledge base yet. 
  • BugFix: Wrong UI displayed when using multiple filters of type combo based on long character types.
  • BugFix: "GetNodeHelp" action missing in some nodes. 


  • BugFix: MethodNotDefined() exception was thrown when there is a freestyle was inside a line separator.


  • BugFix: It was not posible to use the "Responsive Sizes Editor" inside "Filters" node.
  • BugFix: When applying K2BPrompt pattern with "Save Grid State" set to false it an Exception was thrown: "SaveGridState subroutine not found".
  • Only in GX15: SD Designer Release Version.


  • BugFix: When "AfterInsert", "AfterUpdate", "AfterDelete" navigation properties default values were taken from Transaction, and the value was "Return to Caller", it behaved like if the value was "EntityManager".
  • BugFix: Line Separators were not working when included inside filters nodes.
  • BugFix: In K2BTools patterns, when placing multiple filters inside a group, lineseparator or column, an exception was thrown.
  • BugFix: K2BTrnForm DatePicker property was not taken into account in attributes and variables inside grids. 
  • BugFix (Only in GX15): Problem in "Extra Small" screens, not all components of the page were displayed.

Installation instructions

Note: If you are upgrading K2BTools from a version other than K2BTools 8.2, we recommend reading all release notes for intermediate versions.

Getting ready

  1. Download the setup file from the GeneXus Marketplace.
  2. Perform a backup of your KB’s.
  3. Starting with this version, all themes provided by K2BTools will be updated automatically. If you modified these themes to create a custom UI for your application, you should save a copy of the theme with another name before upgrading K2BTools. (If you already upgraded the version and need to recover the previous theme definition, you can use the “History” feature in GX). Changes made in the theme for this version are documented at K2BFlat Compact Theme and K2BFlat Theme and K2BModern Theme.


  1. Install K2BTools 10 using the setup file downloaded in the previous section.
  2. Update your licenses as described in Upgrading K2BTools licenses.
  3. If K2BTools licenses are not installed, install licenses as described in Requesting K2BTools licenses.
  4. Open GeneXus.
  5. If after applying the first pattern instance you get a "failed" error message then: follow these instructions