K2BTools 11.2 - Release Notes

Introduction

In K2BTools 11.2 our work was aligned with what we’ve done in the last versions, creating and expanding our new Design System: Orion.

We’ve worked on improving the power of the WorkWith node, adding several features to make it more flexible and valuable to the end user, following the guidelines and maintaining the Visual Language? defined in Orion.

The sections below describe the improvements done in that area.

We’ve added support for custom grids in the WorkWith object, to allow developers to easily create quality UIs. Also, we added a “Business Analysis” view to allow developers to include real-time reporting to the WorkWith.

We’ve also improved the flexibility of Web Panel Designer allowing the developer to customize the UIs generation even more than before.

This version also simplifies the process of customizing K2BTools’ UI by allowing the developer to change some of the theme properties Using the Change K2BTools UI action.

Lastly, there are a lot of smaller features included in this version. To know more see the “Other features” section.

All this was done staying coherent to our core principles: Keeping descriptions simple and abstract, and keeping UI configuration away from the instance.

Custom grids in Patterns

Sometimes a standard grid is not the best way to view instances of a given object. It happens when the underlying transaction has too few visible attributes. A standard grid "wastes" a lot of valuable space on the screen.

It may also happen when a transaction is too complex and there are a lot of visible attributes. A standard grid needs to scroll horizontally to show all these attributes.

CustomGridExample
Custom grid example

In any case, if you think a standard grid does not fit your needs, you can use custom one.

To use a Custom grid, select the “Change Grid Layout” action in the grid columns node. It will let you choose the right Dynamic Layout object among all defined ones (as shown in Using the Change Grid Layout Action (Designer)).

ChangeGridLayoutPatternAction
Change grid layout action

Once the layout is selected, K2BTools tries to infer which attributes should be used. You are allowed to fix any automatically selected attributes.

Note that this feature was already available in the Web Panel Designer.

All the Dynamic layouts created with previous versions of K2BTools can be used with this feature.

New Dynamic Layouts

In this version we expanded the Dynamic Layout catalog to include two new layouts. These layouts can be used to create grids for generic entities, showing a basic information header displaying an image and a description, and a content section, that can be defined entirely by the developer.

When using these new layouts the actions are shown only when the user hovers each item on the top-right corner.

NewDynamicLayoutPreview1
New dynamic layout

When the image is available it is shown as a circle in the top-left corner. If it is not available or empty, the title’s first letter is shown instead.

NewDynamicLayoutPreview2
Image/Initial behaviour

If the grid items are selectable (usually, when an action related to the grid has Row Selection “Single” or “Multiple”), a checkbox is shown on the top-left corner when the user hovers the item. When the user selects an item, the checkbox is shown for all items so that the user may select more items in an easier way.

NewDynamicLayoutPreview3
Dynamic layout selection behaviour

In future versions, we plan to create context-specific layouts based on these generic layouts.

Business analysis view in WorkWiths

Reporting has been part of K2BTools since its first versions. Report and Export objects are created allowing developers to easily add these features to applications. Many times, these are not enough. End users need to interact with data in an agile way. They need to view it graphically.

K2BTools 11.2 includes a “Business Analysis” node that can be included in WorkWith and SubWorkWith nodes. The Business Analysis node lets the developer define as many query objects as desired, and choose their layout.

BusinessAnaysisInstance
Business Analysis instance

At run-time, the end user can easily switch between the Grid and the Business Analysis View. Filters are unique to both views, meaning that if the end user changes a filter while in Grid view, it is also applied to data viewed when the end user switches to Business Analysis view.

BusinessAnalysisExample
Business analysis view

Sharing filters between the Grid and Busines Analysis views is automatically performed by K2Btools. The developer is responsible of maintaining the “Attributes” and “OrderBy” parts of any query. We think that is the best alternative for most use cases.

If, for any reason, a developer wants to maintain the “Parameters” and “Filters” part manually, that can be done using the “Update Policy” property. If that property is set to “DoNotUpdate”, the developer can manually edit those parts and K2BTools will not override those changes.

Position of actions associated to grids was unified

Grids in Web Panel Designer are now as flexible as those of K2BEntityServicess, in terms of actions positioning.

WebPanelDesignerActionRegions
Web Panel Designer action regions

Actions in Web Panel Designer grids can now be set to any standard region (Top (Left), Top, Top (Right), Grid-Associated (Left), Grid-Associated (Right), and Bottom) or any new region created by following the steps described in Adding custom action layouts.

Improvements in Change K2BTools UI action

Using the Change K2BTools UI action was enhanced to allow the developer to easily make common changes to the theme in use. As of this version, developers are allowed to change:

  • The color scheme
  • Individual colors of a color scheme
  • The application’s icon.

ChangeUIPreview
New change UI options

Once changes are confirmed, the selected theme is imported and color changes are applied. Colors are applied to the theme and to icons associated to it. This way all the UI remains consistent.

Notes

  • Developer's selections are saved to the KB's configuration to assure that new K2BTools versions can honor them.
  • Not all themes can be configured. Only “K2BOrion” theme can be configured at this time.

Other features

Row Selection status classes in grids: When using grids with Row Selection, if the user selects an item in the grid, the class “K2BTools_GridSelecting” is assigned to the table that contains the grid.

Also, when using grids based on dynamic layouts, the “K2BTools_SelectableItem” is assigned to the table associated with each grid item. If the item is selected, the “K2BTools_SelectedItem” class is assigned as well.

This can be used to alter how items are shown when they are selected or when the user is currently selecting items in the grid.

Improvements in “Two Pane” edit mode: The developer can now configure the title for the detail component. This can be done using the “Display Title” property in the transaction, or the “Default Display Title” property in the Transaction node in K2BEntityServices settings to configure it for the entire KB.

When translating the KB-level default to each transaction, the following rules are applied:

  • "<TrnDescription>" is replaced by the transaction’s description
  • "<DescriptionAttribute>" is replaced by the transaction desctiption attribute’s name.

Setting a different class to Tabs nodes in WPD: In this version, the Tabs node includes a “Class” property that allows the user to select which class should be used for that Tabs node.

“No Results Label” property for grids: In previous versions, the “No Results Label” property existed only in K2BGeneralSettings and WebPanelDesignerSettings. In this version it was included in the configuration for each grid. In Web Panel Designer, this property is available in the Grid, FreeStyleGrid, and LayoutGrid nodes. In K2BEntityServices it is included in the WorkWith, SubWorkWith, and Prompt nodes.

The “Layout” property in Action nodes was renamed to “Position”: This was done to clarify the meaning of the property and to avoid confusion with Basic Layouts and Dynamic Layouts.

Better UI for Summary sections: The UI of summary sections was improved in K2BOrion.

Preventing unwanted manual modifications to pattern-generated objects. One of the most common causes for errors when working with K2BTools’ patterns is that the developer may alter the object’s definition manually. After doing so, K2BTools does not update that object’s definition any more. To revert this situation, the developer must use the “Edit -> Apply Default” action.

A warning message is shown when applying a pattern instance that generates an object that is currently not updated by K2BTools.

Sometimes developers modify the object’s definition by mistake, and this leads to problems down the road. To avoid this, we included a confirmation dialog when manually altering the definition of a pattern-generated object.

Report and Export objects are not Main Programs by default: From this version onwards, the Report and Export objects will not be generated as Main Programs by default. This was changed to reduce compilation times in large Knowledge Bases.

This implies a side effect to the Knowledge Bases using GAM. As the procedures are not main objects any more, GAM does not perform security checks on them. However, the procedure’s code includes an invocation to the “Is Authorized” procedure. If using Fast Start GAM this implies that the security controls are executed as they were executed before. If Fast Start GAM is not used, the developer must make sure that the permission is checked correctly in the “Is Authorized” procedure.

The developer can choose to rollback this change using the “Main Program” property in Export and Report nodes in K2BEntityServicesSettings.

Work With to Entity Services converter: The WWtoK2BTools utility is now included in K2BTools. This tool allows users who have instances created using the WorkWith pattern distributed with GeneXus to convert them to a K2BEntityServices instance.

See more information in WW To K2BTools.

“Convert To Web Panel Designer” tool: This tool allows the developer to create a WebPanelDesigner instance based on the current contents of a web panel. It should simplify the process of migrating an existing Web Panel to Web Panel Designer. Beware that the conversion process is heuristic and the developer may need to make adjustments to get the desired results.

You can access this tool in the Web Panel’s contextual menu.

ConvertToWebPanelDesignerMenuOption
Convert to Web Panel Designer menu option

Realtime preview of instance changes: In this version we completed the preview feature to work in Entity Managers and Web Panels created with Web Panel Designer. Thanks to these additions, all objects created with K2BTools can now be used in the preview Feature.

In the case of Entity Managers, this is very useful when using cards instead of tabs to distribute the Entity Manager’s content, as now you can see how all the components interact with each other before applying the pattern.

We also worked to speed up the preview generation so that changes in the instance are seen in real time.

Bugfixes

  • Web Panel Designer: Including a Combo Action in an attributes section produces an error.
  • Web Panel Designer: Invite Message property does not work in Variables and SDT Variables used in grids.
  • Web Panel Designer: Grid Paging should not be generated for nested SDT Grids.
  • Web Panel Designer: “DataProvider”, “Item Value”, and “Item Descriptions” properties are not assigned when Control Info = “Dynamic List Box”.
  • Web Panel Designer: Hide combo action caption from option list.
  • Web Panel Designer: When page equals zero, an invalid mod operation is generated.
  • Web Panel Designer: Invalid code is generated when a Web Panel includes a conditional action and an attributes section that is collapsed initially.
  • Entity Manager: When no form caption is specified, a for each is not generated in the start event. Because of this, the Delete action may not work properly.
  • Entity Manager: When the form caption is dynamic and the value at runtime is empty, the Web Panel’s URL was shown in the tab title. Now, the Caption property is used instead.
  • Entity Manager: User Defined components were not created properly when the web component is in a module.
  • Conditional Row Classes: After upgrading to GeneXus U11, when using the “Conditional Row Classes” property, the “Order By” property does not work, and column headers are not hidden as configured in the “Show In X” properties.
  • Pattern generation: If a transaction’s description attribute is an image an error is shown.
  • Pattern actions: Combo actions located in the “Top” and “Top (Right)” regions are not generated.
  • Pattern attributes: Autolinks are generated for attributes with “Use In Work With” = False.
  • Two Pane Layout: The actions in the detail view are not shown properly.
  • K2BOrion: Large grids overflow their container.
  • K2BOrion: Varchar variables and attributes are not shown correctly at runtime.
  • K2BOrion: The alignment of dates in grids was fixed.
  • Report/Export: Descriptions are not shown in dynamic combo filters based on a Data Provider.
  • Filter Summary: Descriptions are not shown in filters with Type=Values and Suggest=OnDemand.
  • FilterSummary: The “SemanticDateRangeValue” is not set when the “Manual” option is used.
  • SDDesigner: U_ClientStart subroutine was removed.
  • GXServer: Several issues were fixed improving stability and performance.

Known Issues

While developing the Business Analysis View feature, we found three bugs that were reported to GeneXus. These errors are documented in sacs #43990, #44023, and #44020.

Some of these errors are already fixed in GeneXus 16, while others are still being corrected by GeneXus.