Load Balancer
Introduction
Load Balancer is an element of the K2 architecture that can be used to distribute the load among multiple application servers. The K2 API thus has the ability to connect to multiple application servers simultaneously. When sending a request, the least busy server is evaluated first and it receives the request for processing.

Picture: Load Balancer and K2 API
Example of using Load Balancer and K2 API:
The K2 API receives the request for processing. Load Balancer is addressed for the fastest request processing. The Load Balancer sends a request to all ASs and finds out their current load. It evaluates the least busy server and passes this information to the K2 API. The K2 API thus sends the request directly via the selected application server to the Load Balancer.
LoadBalancer can also be used for web K2, which when the user logs on, finds the most suitable application server and connects the user to it.

Picture: Load Balancer and Web K2
Example of using Load Balancer and Web K2:
Web K2 accepts the user's login request. The web K2 Load Balancer will contact the request to process the request as quickly as possible. The Load Balancer sends a request to all AS and finds out their current load. Web K2 passes the information on the least busy server. Web K2 will use the best evaluated server and thus the fastest processing of the user's login request will take place. Every other request of a given user is already processed by a specific selected AS.
Each K2 API and K2 web installation has its own Load Balancer. In the installation, you can set a specific list of application servers and the configuration of the Load Balancer, which can affect the algorithm for selecting a suitable application server.
Load Balancer evaluates the most suitable application server for request processing in two modes:
- Loading and evaluating the best AS before each connection request (preLoadingEnabled = false)
- Before each request to create a connection, the application servers are bypassed with a request for their statistics, which are processed and evaluated. The most appropriate AS is then used for the given request.
- Load and evaluate the best AS continuously (preLoadingEnabled = true)
- Statistics are read in the specified time interval and the best AS is evaluated. Each connection request is evaluated based on the calculated result of the statistics.
Load Balancer parameters
- requestTimeout:(default 1s) Each connection request is evaluated based on the calculated result of the statistics. If a connection fails with the AS by this time, or the AS does not respond by this time, the AS will be dropped for this particular evaluation. Upon the next request, it will be added to the list of possible application servers again.
- validTimeout: (default 0 u preLoadingEnabled = false, 1000- preLoadingEnabled = true) - the time for which the detected statistics and thus the best AS are valid.
- maxHistoryCount:(default 0) - number of records in history. If the number is 0, the history is not recorded. It is used only for debugging the optimal setting of parameters, when we can look into the history of the distribution of requests and adjust the parameters accordingly.
- preLoadingEnabled:(default false) - enable / disable mode with continuous loading of statistics. If set to true, then validTimeout means the time interval in which the statistics are updated.
- The appServers section defines the application servers that will be used by the Load Balancer. The default is the one used in the K2 API / K2 Web configuration
- Ex. for K2 API (Web K2 is similar only, configuration is done in JSON) "<add server =". "pipe =" ScriptService "/>”
- server: IP or PC name
- pipe: pipe AS name
- the multiplier section is used to set the weight of individual statistics and thus to influence the calculation algorithm
- Ex. for K2 API (Web K2 is similar only, configuration is done in JSON) <add uid="bscSystemCPUAvg" value="1"/>"
- uid: statistic identifier
bscSystemCPUAvg - average CPU usage over time
bscSystemFreeMemory - currently free operation memory
bscAppPoolSpandAvg - average waiting time for the K2 AS request before it is serviced
bscAppNCLSessions - number of connected web K2 users
bscAppAnonymousSessions - number of anonymous threads for K2 API
bscAppSchedulerSessions - number of running scheduled tasks
- value: the value by which the received statistic value will be multiplied by AS. This makes it possible to influence the weight of a given parameter.
A value of 0 disables the evaluation of this parameter during the calculation.
If in any mode the Load Balancer does not connect with the AS in the required time interval, or the AS does not supply statistics in the specified time, it is excluded from the evaluation for the given AS pass. In the next pass, the Load Balancer will try to connect to the AS again.
News in version
News in version K2 nara.01
Basic Code Lists and Supporting Modules K2
Credits - Rights
In the 2026 version, new user permissions have been added for working with the Credits module.
To view the code list, the View Credits (2395) permission is now required.
To work with records, the Edit Credits (2394) permission is needed.
To assign credits on the customer card, the Assign Credits to Customer (2396) permission must be set.
My Office
Workflow
New parameter of the WkfCreateProcess script
A Boolean parameter (True/False, default value False) was added to the script WkfCreateProcess, which displays a message when creating a new process asking whether the process should be created.
Sale/Purchase
Qr code as an instant payment in reports VF_DOK01 and ADVREC_DOC01
In the issued invoice report (VF_DOK01.AM) and the received advance payment report (ADVREC_DOC01.AM), the value 5 has been added to the QRCode parameter, which generates a QR code for the QRCZInvoiceCalc field as an instant payment.
Logistics
Changes in travel orders – partner, addresses
We have made database changes to travel orders for version 2026:
- In the header, the Customer field is replaced by the Partner field, in the items, the Customer field is deleted without replacement
- In the header, in the fields Place of negotiation, Place of journey start and Place of journey end and in the items Stages, in the fields with the city of departure and arrival, there is a link to another code list of municipalities.
Warehouse map
We have added a new module to the K2 Information System the Warehouse Map. This module allows you to define the layout of the warehouse and display it graphically within the K2 web interface.
The warehouse map serves as the foundation for calculating the optimal route for a warehouse worker during their movement through the warehouse. This functionality is integrated into the Logistics Manager. Within this module, you will find two sub-functions:
- The first is used to create picking jobs (transfer orders).
- The second calculates the warehouse worker’s route within a given job.
Both functions can be configured using parameters.
Multi-warehouse inventory
It is now possible to perform inventories across multiple warehouses in the K2 Information System. In the warehouse book settings, a new checkbox “Inventory across multiple warehouses” has been added. When this option is selected, a table becomes available in the Inventory module, allowing you to choose the warehouses in which the given inventory will take place.
Within these selected warehouses, it is also possible to mutually offset identified shortages and surpluses.
Batch tracing module – BATCH PROTOCOL
This module is designed to trace the origin and usage of a specific batch. In a tree structure, users can view both:
- Inbound transactions – documents through which the batch was received into inventory.
- Outbound transactions – documents in which the batch was consumed, including quantities and dates.
The system also provides information about the final product that the batch was indirectly used in, tracing through all intermediate levels.
Maintenance
Quality control
For each measured parameter within a quality document, a new table Measured Values is now available. This serves as a historical record of the parameter’s values over time. Three types of data inputs are supported: Manual entry, IoT data import (new ribbon action Load from IoT), Calculated values (new ribbon action Calculate values from measurements). The data can also be displayed in graphical form.
A Quality control specification can now also be defined at the Operation level within a technological process. When creating quality documents, this specification takes precedence over the specification defined on the item card. This allows the creation of quality documents with different parameters within a single production order, depending on the nature of the inspection operation.
Production
Production Manager – Speed optimization
By using the labs parameter in k2.ini (LABS_PRODUCTIONMANAGERTUNING=1), the data loading process in the Production manager has been modified. This new data-handling approach significantly accelerates the loading phase and is designed for environments with a large amount of data being loaded into the Production manager.
Overall Equipment Effectiveness (OEE) Evaluation in K2 BI
The evaluation of Overall Equipment Effectiveness (OEE) and its components (Availability, Performance, and Quality) is now calculated according to K2’s standard structures.
Capacity is determined based on resource calendars.
Downtime is identified from operations on downtime jobcards (operations marked as Downtime).
Scrap is considered based on operations in production completion work orders.
Accounting
Bulk Change of Items on a Confirmed Document – Account Number Change
On confirmed purchase and sales documents, it is now possible to change the Account Number as part of the Bulk Change of Items action, located on the Purchase/Sales Items tab in the ribbon.
After entering and confirming the change, the posted status on the posted document is removed.
Import an internal document from Excel
We have created a script Import internal document from Excel (ImportInternalDocument.PAS), which can be used to create a new internal document and import its items from Excel. In Excel columns, the program name of the field must always be on the first line. The Excel ImportInternalDocument.xlsx with example is in the K2/SupportFiles/Lang5 directory.
Quantity in Accounting
Starting from version 2026, it is possible to record the quantity from the primary document items and the unit of measure in the items of accounting documents.
In the Articles card, there is a new option in the Units of measure called Default for accounting. If any unit of measure on the articles card is marked this way, the quantity will be recorded in accounting using this unit of measure. If no unit of measure is marked as such, the quantity will be recorded in the default unit of measure.
In the items of Posting keys there is a new option Account quantity. If this option is enabled, the quantity and the unit of measure will be recorded in accounting.
In the Chart of accounts, it is possible to set an account to obligation to account quantity.
Printing of Economic Analysis Reports – Report Adjustments
As of version K2 Nara.01, the printing of economic analysis reports has been modified (Balance Sheet, Income Statement, and Cash Flow Statement).
Printing into predefined templates has been removed. The reports now have the appearance of standard reports within the K2 system. Scripts and reports have been adjusted with the parameters listed below. Some reports have been removed, as they are now printed based on templates within the scripts of the respective economic analyses.
The Main Tree Menu in K2 – Printing of Economic Analyses has been adjusted. The Profit and Loss Statement 2018–2023 has been moved to the folder Report Printing – Archive.
In the scripts and reports:
Script Balance Sheet UCT_EA_Balance.PAS (Report UCT_EA_Balance.AM)
Script Condensed Balance Sheet UCT_EA_BalanceS.PAS (Report UCT_EA_Balance.AM)
Script Condensed Balance Sheet – Basic UCT_EA_BalanceSS.PAS (Report UCT_EA_Balance.AM)
Script Profit and Loss Statement UCT_EA_IncStmt.PAS (Report UCT_EA_IncStmt.AM)
Script Condensed Profit and Loss Statement UCT_EA_IncStmtS.PAS (Report UCT_EA_IncStmt.AM)
Script Cash Flow Statement UCT_EA_CashFlow.PAS (Report UCT_EA_CashFlow.AM)
Script Non-Profit Organization Balance Sheet UCT_EA_NOBalance.PAS (Report UCT_EA_NOBalance.AM)
Script Non-Profit Organization Profit and Loss Statement UCT_EA_NOIncStmt.PAS (Report UCT_EA_NOIncStmt.AM)
The following parameters have been modified or added:
- New parameter Font (for printing reports in thousands of CZK)
- New parameter ShowNullLines (prints lines with zero amounts)
- New parameter LogoPictureHeader (logo in the header)
- New parameter ShowFooter (displays the report footer)
- The default value of the parameter ActualMulticompanyBook has been changed to True
- Parameters FormsPattern and PathToBackgroundPicture have been removed (PathToBackgroundPicture was used only in the UCT_EA_Balance report)
The following reports have been removed:
UCT_EA_Balance2016.AM
UCT_EA_IncStmt2016.AM
UCT_EA_BalanceS.AM
UCT_EA_BalanceS2016.AM
UCT_EA_BalanceSS2016.AM
UCT_EA_IncStmtS.AM
UCT_EA_IncStmtS2016.AM
UCT_EA_NOBalance2016.AM
UCT_EA_NOIncStmtS2016.AM
Corporate income tax
In IS K2, you can create a corporate income tax return.
In the Multi Company Administration, in the Corporate Income Tax section, you need to set parameters.
We will calculate the tax and create the xml file using the Corporate Income Tax script (CorporateIncomeTax.PAS).
Assets
When creating an asset card by copying, depreciation data or the number of depreciated years are no longer copied
When copying an asset card, the following data related to the copied card are no longer copied in the Items tab:
- Total valuations
- Number of written years off
- Valuations in the year of loading
- Unapplied depreciation
Ability to change the abbreviation of the Preset and Depreciation Plan even if they are already used on asset cards
It is now possible to change the abbreviation of the Preset and Depreciation Plan, even if they have already been used on asset cards or the cards have been processed or retired.
News in the Asset Stocktaking Module for Scanners (Simple Version)
In the Asset Stocktaking Module for Scanners (Simple Version) – function no. 7 084, we’ve introduced further simplifications for conducting asset stocktakings:
- Display of Analytical Axis Tree Structure – If it's necessary to change a checked value (e.g., Cost center, Location, etc.) of a scanned asset card, pressing the corresponding axis button will display a tree structure (or table), allowing for a clear selection of a different value.
- Display of picture – A thumbnail of the asset picture is shown on the scanned asset card. The picture can be enlarged using the magnifying glass button. The first picture of type PICTK2 attached to the asset card is displayed.
- Adding an Asset Card to the Required Asset Cards of the Asset Stocktaking List during the Stocktaking – If the scanned asset card is not among the required asset cards on the Asset Stocktaking List but exists in K2, the following question appears: “Asset xxx is not in the required items, would you like to add it now?” If the prompt is confirmed, the asset card is added to the required asset cards on the Asset Stocktaking List. The asset card must then be re-scanned.
Payroll
Additional rights for Payroll Liabilities
Additional rights for Payroll Liabilities have been added to K2. To use them, Payroll Liabilities must first be registered according to the documentation Setting Up Additional Rights.
Web and e-shop
Change in Display of Stock Availability Texts
We have modified the way stock availability texts are displayed when the "Actual stock levels" option is enabled”.
If a product is out of stock, the specified zero-stock text will be shown, e.g., "2 weeks (0 pcs)", "Temporarily unavailable (0 pcs)".
In the Website and E-shop Settings (Display tab), we have added a new option: "Use alternative texts for stock availability". When this option is checked, the display of actual stock levels will use values from the alternative stock texts, such as:
Stock > 5 pcs ... "More than 5 pcs (x pcs)"
Stock > 10 pcs ... "More than 10 pcs (x pcs)"
Stock = 0 pcs ... "Unavailable (0 pcs)"
Redesigned Email Template Preview
We have newly integrated the email template preview into the web version of K2. At the same time, the preview in the desktop version of K2 has also been redesigned. The "Email Message" form is now used for the preview.
If a user wants to open the template preview in an email client (such as Outlook), it is necessary to add the Export to EML button to the ribbon of the "Email Message" form in the following way:
1. Open the Email Message window via "Email Template Preview"
2. Right-click on the ribbon and select "Customize the Ribbon for the Current User"
3. From the tree menu "Choose commands from...", select "Email Message"
4. Select the "Export to EML" command
Removal of Columns from the EshopArticleShopValue table and EshopArticle database View
Starting with version 2026, several columns have been removed from the EshopArticleShopValue table and the EshopArticle database view. These columns previously contained so-called e-shop flags.
If these columns were used in any specials or custom features, they must now be replaced with the new labels available since version 2024.
Removed columns:
- New product – column IsNewArticle
- Free shipping – column IsFreeShipping
- Recommended – column IsTip
- Discount – column IsDiscount
- Clearance – column IsSellout
- Second-hand – column IsSecondHand
- Coming soon – column IsComingSoon
- Promotion – column IsCampaign
Administrator
New right to change the code list Business years
When editing the Business years code list, the "Administrator/General/Change Business years code list" right is now checked.
Unique document identification
When displaying the document number in the Book/Business year/Number format, you can now add up to 3 characters at the beginning to distinguish the document type.
Unique document identification is set in the Business years code list.
For example, if in the Business year "2025" we set the identification "PO" + space for Purchase orders, the order number in the book (e.g.) "11", issued in the period "2025", will display the document number "PO 11/2025/1".
Changes in Scheduled Task Processing
In version 2026, we made several important changes to how scheduled tasks are handled.
1. Bulk enable/disable of tasks
It is now possible to enable or disable all selected tasks at once using a single command.
2. Scheduler table changes
We added two new columns to the scheduler table: the server on which the task is currently running, and the time when the task started.
The column showing the server where the task is running has also been added to the default columns in the “Currently Running” overview.
3. Scheduler history changes
The scheduler history table was expanded to include information about which server the task ran on. This column is now also part of the default columns in the scheduled task history view.
4. Removal of Balanced mode
The Balanced mode in the scheduler has been removed, and the “IsDefault” flag in the server table is no longer used.
Tasks assigned to a specific server are now executed only on that server. All other tasks are processed by any available and running K2_AS instance.
5. Behavior when connection to MS SQL is lost
If a K2_AS instance loses connection to MS SQL while a task is running, another K2_AS instance can take over the task.
When the original K2_AS reconnects, it performs a check. If the task is already being executed by another instance, an exception called EDuplicateSessionError is raised.
Available Updates
In this module, you will find a list of all currently available versions of the K2 Information System, including links to release notes and error reports.
Available versions can be downloaded via the K2 Installer.
New permission "Suppress form edits"
A new permission has been added: No. 2431 Administrator / General / Suppress Form Edits
This permission allows the user to suppress form edits and display the form in its default (factory) state, without any special modifications (using the "Suppress form edits" button in the ribbon).
By default, this permission is disabled.
The Book Users
Since version K2 nara.01, the Users module has been redesigned.
To work with this module, we recommend reading the User Documentation and the Guide for transition.
Web K2
Web K2 - vertical scrollbar
Since versions K2 vega.05 and K2 nara.01, a vertical scrollbar has been added to the web-based K2 on desktop for navigating between records.
Parameter for ribbon icon customization
When the URL parameter CompactSections=1 is used, the icons in the ribbon will adjust to the screen size.
K2 Chat
Starting from version K2 nara.01, it is possible to use the chat feature for users in the K2 web application. The chat icon will be displayed in the user panel next to the notifications icon.