Introduction

Higson from business perspective

Higson as a Business Rules Management System is a system that helps organizations to manage, execute, and optimize their business rules from a centralized platform.

It is designed to easily handle large decision tables. Higson stands out for its extremely high performance and a designed matching algorithm to search large decision tables (1M rows and more) in a few milliseconds.

What Higson offers?:

Higson offers a scripting language that allows users to write short functions that expand the capabilities of decision tables. Both software developers and operational staff can modify such functions or decision tables without touching the application’s code. The changes are immediately reflected in any application that uses the Higson engine.

Key features:

  • Higson Studio - Web UI that lets users to manage easily their business rules
  • Higson Runtime - engine embeddable as a lightweight jar to your business app
  • High performance – all rules are stored in in-memory caches so higson provide immediately access and possibility to invoke them
  • Time Versioning - create multiple versions of the business logic and schedule them in a timeline
  • Domain Designer - design any domain you want to configure with business logic
  • Decision tables and Parameters - tabular representations for specifying which decisions are made using pre-defined conditions
  • Functions – help define more complex logic in Groovy language

Additional features:

  • Context - rules use the context to reference actual business data needed to evaluate a rule
  • Private session - there is no limit to the number of users working simultaneously; changes are not visible to other users before publishing
  • Dev Mode - special mode to speed up the initial phase of the development; each change is immediately visible to the outside world.
  • Built-in Profiles - monitor the usage of decision tables and DSL scripts or functions
  • Import and Export from/to Excel - import and export configuration and tets cases from/to Excel.
  • Multiple Databases support - Higson uses databases for storing rule configurations; supported databases: Oracle, MS SQL Server, PostgreSQL, MySQL
  • Test features (tester, batch tester) - before publishing changes, user can tests whether the rules work as desired and check the impact on other rules by using a mass tester to perform regression tests

Who and how will use Higson?

There are 3 groups of users, that will use Higson:

  • End User - application business end-user, which may modify values of previously configured domain.
  • Developer - Developer codes your business application with higson support. Needs to prepare appropriate domain model at your app. Perform initial configuration which business user prepared firstly. Developer may mix higson features: domain, decision tables, functions to reflect business domain configuration.
  • Business User – main designer of your domain. Initially Business User input final parameters values. Experienced Business User can perform highly sophisticated parameter redesigns without the necessity of application code change.

Here are short descriptions of components in the diagram:

  • Higson Studio - the complex web-based user interface for setting up parametrization. The tool includes parameters and functions repository, domain definition and configuration, testing, and export-import capabilities.
  • Business Application - Java application that has its business logic, parametrization externalized to Higson. The application is e.g. sales portal, product management system, policy life system. The parametrization is accessed via Higson Runtime.
  • Higson Runtime – as an embedded jar library provides to your Business Application robust java API for parameter/function/domain access. The library is responsible for retrieving data from Database schema and caching it as an in-memory index within the Business Application. At fixed intervals the library checks for changes alterations and updates itself asynchronously. That approach significantly expedites parametrization calls.
  • Database - storage for Higson externalized parametrization repository. Data is altered via Higson Studio. Higson Runtime Library accesses the schema in fully read-only mode. Higson supports the most popular SQL Databases.

How Higson can support organizations?

Insurance Industry

Higson helps insurers to start leveraging and embracing data in managing products and offering highly personalized solutions to customers, in real-time. Business and non-IT users can make instant changes and market new products in a matter of minutes. Higson has proved its usage in:

  • insurance underwriting
  • tariff management
  • insurance claims management, etc.

Banking & Finance

Banks also use rules engines to develop new financial products while maintaining pricing accuracy and compliance. As a result, new products enter the market in a matter of days instead of weeks or months. Higson can empower financial institutions to streamline important processes such as:

  • product eligibility
  • credit scoring
  • customer self-service, etc.

Telcom & Media

Telecoms have thousands of products comprising pricing, customer segments, distribution channels, packages, promotions, and subscriptions. Managing such complex portfolios can quickly become difficult and inefficient as new products and variations are introduced. Higson is a powerful product catalog that empowers non-technical business users to build, update, and manage all of their complex products with a single user-friendly interface. As a result, Higson drastically shortens time-to-market, cuts down on expenses, and eliminates potentially costly mistakes.

Industries, such as:

  • Retail
  • Airlines
  • Travels, and even more as a dictionary module.

Versioning

The numbering of the software version is carried out using numerical designations: “x.y.z”. The numbers “x.y” indicate the version number of the software in Major and Minor notation (e.g. 1.21, 2.1).

The number “z” indicates a Patch version that does not affect the functional scope of the released version, and is intended for technical improvements or removal of noticed bugs.

Software versions marked as LTS (Long-Term-Support) are maintained for at least 18 months from release.

Technical support includes maintenance of LTS versions only.

Current list of LTS versions: 2.2, 2.3, 4.0

You can download the newest version from the Changelog.

Try it out!

DEMO

The demo project includes both:

  • demo application
  • Higson Studio

The demo application is used to collect input data from the end user and show output data from Higson Studio, where all algorithms and business logic is kept. Higson is designed to allow real-time changes in configuration, impacting results returned by the demo app. Higson Studio included in this set has no functional limitation compared to the full version.

DEMO
Login credentials:
Login: admin
Password: admin

All documentation about Studio REST API can be found here

Instruction

Batch Tester

Testing modules allows to test parts or the whole algorithm design in Higson Studio. Using batch tester gives the ability to perform test for series of data, not just a singular set. Create and save mass tests to control how changes it the algorithm influence the results. Each batch test is created from unit test (design in singular tester). To learn more about the Unit tests read the Tester chapter.

To go to batch tester, select Tools/Batch Tester in Main Toolbar.

You will see all saved batch tests

Each batch test is listed in the center of the screen, every single one is described by four information’s:

No. Column name Description
1. Test Name Batch test name. Each batch test should have unique name.
2. User Login of the user who created the batch test.
3. Last Modified Date of the last modification of the batch test.
4. Actions List of quick access actions. Currently only Remove action (bin icon) is available here.Remove action deletes desired batch test.

Additionally you can use available actions:

No. Action Description
1. + Add test package Opens a batch test creator.
2. Upload test package Allows to upload batch test from XLSx file
3. Hide/Show filters Hides or reveals Filters bar accordingly.
If Filter bar:
- is visible, then action Hide filters is available.
- is hidden, then action Show filters is available.

Use filters to search for preferred batch test:

No. Filter name Description
1. Search text field Filter by any string provided by user.
2. Date range Filter by last change date in format YYYY/MM/DD-YYYY/MM/DD .
3. Modified by Filter by user who last modified the batch test.

Batch tester creator

To create new batch test unit test must already exist. You can create unit test using the Tester. When this condition is met you can start creating batch tests based on existing unit tests.

The Batch Test creator:

For each unit test, which creates batch test, six information is given:

No. Column name Description
1. Test Name Full test name. Test name is loaded from selected unit test. Test name can be changed (or added) through import of the XLSx file.
2. Status Test case status provided by comparison of the evaluated value with expected value.
3. Failures Number of failures within unit test case. Where evaluated value differs from expected value.
4. Errors Number of errors which occurred during the unit test.
5. Time (ms) Time taken to perform the unit test.
6. Actions List of quick access actions. Currently only Remove action (bin icon) is available here. Remove action deletes desired unit test.

By those the list of unit test can be sorted if needed.

No. Action Description
1. Checkboxes Select the top checkbox to select all unit tests in the view, or select individual checkboxes to select unit tests
2. + Add test Opens a batch test creator.
3. Upload package Allows to upload batch test from XLSx file
4. Download package Allows to download batch test from XLSx file
5. Remove selected tests Deletes all unit test with marked checkboxes. Available only if at least: one unit test was added, and one checkbox is selected
6. Save package Saves batch test for further use.
7. Run test Runs batch test, performs all unit test cases added to viewed batch test. Every batch test can be run (even not saved)

Batch tester - creating a batch test

To create new batch test, follow these steps:

  1. Go to Main Toolbar

    a. Select Tools

    b. in Tools select Batch Tester

  2. Click “Add test package”

  3. Your first action should be filling the Name for the Batch Test. Name can contain only characters from collection a-z; A-Z; 0-9; “-”; “_”.

  4. Next click +Add test

    a. Select unit test you wish to base the batch test on

    b. If test loaded correctly to batch tester it will show on the list of the unit tests

  5. Click on Run test to get the results

  6. Now, when the template has been provided you can Download the batch test to your computer as XLSx file. Click on Download package

  7. Open the XLSx file

    a. The template should look similar to this

    b. add data series according to your needs

    c. save the edited file

  8. Upload the batch test:

    a. Click on Upload package

    b. Load the updated file from your computer

    c. Click Upload

  9. When the file is loaded correctly and you will click Run test again the result of all loaded test cases should show

  10. Lastly, to be able to get back to created batch test case you must save it by clicking : Save package:

a. add the name for the batch test, if you have not added it yet. For Batch test name allowed characters are a-z, A-Z and symbols: -_

b. click on Save package

Batch tester - Upload a batch test

You can upload test package in two ways. First from the Batch Tester Panel:

  1. Click on Upload test package:

  2. Load the file from your computer

  3. Click Upload button to accept the selected file for upload

  4. The uploaded batch test should show on the list

The other way is to create new batch test:

  1. In the Batch Tester Panel click on Add test package (in actions panel)

  2. On batch test creator view, in action panel click on Upload package

  3. Select the XLSx file with the definition of the batch test

    a. Load file

    b. Click upload

  4. After successful download remember to save the batch test

Batch tester - Download a batch test

When working on selected batch test:

  1. Click on Download package

  2. The XLSx file will be generated with definition of the batch test, save the file.

Batch tester - Reading & Editing the XLSx file

Each XLSx from batch test is created according to the rules:

  • There are always three sections with data
  • Each sections may have multiple columns
  • Data sections are separated by empty column, with header # or ##

First sections:

  • starts with column including test case name
  • each next column contains one input value

Second section:

  • for each tested element one column is created
  • each column contains result expected value for one of the tested elements

Third section:

  • for each tested element two columns are created
  • first column contains evaluated value for the tested element
  • second column contains value of the difference between calculated result and expected result
First section:

Column headers are indicators of what kind of variable is needed. Usually in the context header is a context path which is used in tested elements.

Second section:

In each header two informations are stored:

  • Type of element in the test case

    • att@ for domain business attribiute
    • par@ for parameter
    • fun@ for function
  • Code of that element

    • in case of attr@ after element type domain path is given
    • in case of par@ or fun@ after element type element code is given
Third section:

In each header three informations are stored:

  • Value Type :
    • Evaluated - for columns holding values evaluated by the algorithm
    • Diff - for the value of the difference between what was calculated and what was expected
  • Type of element in the test case
    • att@ for domain business attribute
    • par@ for parameter
    • fun@ for function
  • Code of that element
    • in case of attr@ after element type domain path is given
    • in case of par@ or fun@ after element type element code is given

Run Batch Test

To Run an existing batch test follow these steps:

  1. Go to Main Toolbar

    a. Select Tools

    b. in Tools select Batch Tester

  2. You will see Batch Tester Panel, filled with all existing batch tests

  3. Click on selected batch test, to view it’s details

  4. Batch test view, in our example:

  5. When you click on selected test

  6. Here you are able to view test details and if needed change:

    a. Input values

    b. Expected values

    c. Or even change tested elements in selected unit test case (full description on how to create and edit Unit Test Cases can be found in the User Guide Tester chapter)

  7. When all the changes are made

    a. If you want to save this Unit test and be able to view it in singular Tester just click Save test

    b. It’s not obligatory to Save test as you would in Unit Tester. Just get back to the batch test by clicking the Package button

  8. On the batch test view click Run package to perform your tests

  9. For each unit test a result status will show:

    All possible statuses are described here:

    No. Status Description
    1. Success When unit test performs without problems and result value is equal to expected value.
    2. Failure Can occur in two situations:
    - The result value is not equal to expected value
    - The Error occur during performing the unit test
  10. Beside Status there are other information given by batch tester

No. Column name Description
1. Status Test case status (Success/Failure) depending on whether test was performed with positive result
2. Failures Number of failures within unit test case. Where evaluated value differs from expected value.
3. Errors Number of errors which occurred during the unit test.
4. Time (ms) Time taken to perform the unit test.

Configuration parameters

This screen allows adding and removing configuration parameters. This functionality is dedicated to Higson system administrators. It allows editing table CONFIGPARAMS in higson database schema. Table state can be different depending on installation environment.

To access the screen, go to Main Toolbar and select Configuration parameters.

After entering the screen, you will see the list of all created configuration parameters.

Each element is described by five qualities:

No. Column name Description
1. Area Area name for the configuration parameter.
2. Code Code for the configuration parameter.
3. Value Name for the configuration parameter.
4. Created The date when configuration parameter was created.
5. Imported The date when configuration parameter was imported.
6. Modified by The name of the user who last made the changes to the selected configuration parameter.

There is only one available action:

No. Action name Description
1. Edit Allows to make changes in configuration parameters

When in edit mode more actions are available:

No. Action name Description
1. Edit Edit existing configuration parameter
2. Add new parameter Add new row in the table allowing creating new configuration parameter
3. Delete Delete selected configuration parameter
4. Cancel Cancel all the changes in the table
5. Save changes Save all the changes in the table

Adding new configuration parameter

  1. Firstly, go to edit mode by clicking Edit button

  2. Click on Add new parameter

  3. Fill in all the necessary information

  4. And Save changes

That’s it, new configuration parameter has been added.

Context

Context is an object model containing all data that may affect Decision tables’ or Functions’ values. Once we design a context model, we can make our parameterization depends on any data from the context. In order to see Context, select Context in Main Toolbar.

After you enter Context you will see screen of all Types:

No. Column/Action name Description
1. Name Full type name. You can filter this column by providing any string.
2. GMO Table name Full GMO Table name. You can filter this column by providing any string.
3. Description Full description of type. You can filter this column by providing any string.
4. Last update The last modification date of the type.
5. Actions List of quick access actions. Currently only Remove action (bin icon) is available here. Remove action deletes the desired type. To learn more about removing a specific Context Type, go here.
6. Download Types Downloads a TXT file that contains all Types and Attributes of Types. To learn more about downloading Types, go here.
7. Upload Types Allows uploading Types from a TXT file. To learn more about uploading Types, go here.
8. + New type Allows creating new Types. To learn more about adding Types, go here [go here.
9. Delete all types Deletes all Context Types.

Context - Add new type

If you want to add a new context type, follow these steps:

  1. Choose Context in Main toolbar.

  2. Choose + New type.

    a. Choosing + New type opens a step-by-step Context Type wizard.

  3. In step 1. Name you need to provide unique Type name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

    a. If you enter illegal characters, then borders will be highlighted with red color. Hover on the field to see tooltip with more information.

  4. Choose Next.

  5. In step 2. Description you may add Type’s description. Description can contain only characters from collection a-z; A-Z; 0-9; “.”; “-”; “,”; “_” and white-space characters. This data is not

    a. If you choose Previous you will go back to step 1. Name.

    b. If you enter illegal characters, then borders will be highlighted with red color. Hover on the field to see tooltip with more information.

  6. Choose Next.

  7. In step 3. Attributes you may add/remove attributes. This data is not necessary to save a type.

    a. If you decide to add attributes, you:

    i. must** provide unique name. Name can contain only characters from collection a-z; 0-9; “-”; “_”; and it can’t start with “-”;

    ii. must select a type from a drop-down list.

    iii. can check/uncheck multi value.

    iv. can provide Attribute description. Description can contain only characters from collection a-z; A-Z; 0-9; “.”; “-”; “,”; “_” and white-space characters.

    b. You can sort attributes by left-clicking on arrows next to each Column name.

    c. If you enter illegal characters in name field for any attribute, then borders will be highlighted with red color, and you will not be able to save a type.

    d. If you enter illegal characters in the description field for any attribute, then borders will be highlighted with red color, and you will not be able to save a type.

  8. Choose Save.

    a. Type with data you provided is created.

    b. If in step 3. Attributes you entered the same name in at least two attributes, then validation error will appear.

Context - Remove Context Type

If you want to remove a specific context type, follow these steps:

  1. Choose Context in Main toolbar.

  2. Choose Remove action (bin icon) for type you want to delete.

    a. Action is greyed out for ROOT type.

    b. After choosing Remove action, confirmation pop-up will appear.

  3. Choose Delete.

    a. Specific Type is being removed from the environment. This action is irreversible.

Context - Download Context

If you want to download context, follow these steps:

  1. Choose Context in Main toolbar.

  2. Choose Download.

    a. Choosing Download a TXT file that contains the whole Context.

Context - Upload Context

If you want to upload context, follow these steps:

  1. Choose Context in Main toolbar.

  2. Choose Upload.

    a. Choosing Upload brings up Import context screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than TXT, then validation error will pop up.

    b. If there is something wrong with data in TXT file, then validation error will appear.

  4. Choose Upload

  5. When the progress bar reaches 100%, it means that context was uploaded correctly

    a. If a validation error occurs (see above), then an upload process is being aborted.

Context - Delete all types

If you want to delete all types in context, follow these steps:

  1. Choose Context in Main toolbar.

  2. Choose Delete all types.

    a. After choosing Delete all types button, confirmation pop-up will appear.

  3. Choose Delete.

    a. The Entire Context excluding ROOT is deleted from the environment.

Context Type details screen

You can access Context Type details by left-clicking on the specific type in the screen of all Types.

An important difference in Context is that changes made in Types are instant, without session mechanism.

No. Name Description
1. Type details section Contains information such as: Type’s name, GMO Table Name, and Type’s description.
2. Attributes section Contains information about all attributes created in Type.
3. Name Full attribute name.
4. Type Data type used in the attribute.
5. Multi value If multi-value is checked, then it allows providing a list of elements. If unchecked, then only single elements can be provided.
6. GMO Persistent Informs about the used GMO type.
7. GMO Column name Name of the GMO column in the database.
8. Description Full description of the type.
9. Edit - Type Enables Edit mode for Type details section. To learn more about editing type details, go here.
10. Edit - Attributes Enables Edit mode for Attributes section. To learn more about editing attributes, go here.

Context Type details - Edit Type details

If you want to edit data in a Type details section, follow these steps:

  1. Choose Context in Main toolbar.

  2. Left-click on a type you wish to edit.

    a. Left-clicking on type opens Context Type details screen.

  3. Choose Edit in Types details section.

    a. Highlighted borders indicate that edit mode is active.

  4. Edit any data you need.

    a. If you enter illegal characters in type’s name, then validation error will appear.

  5. Choose Save changes to save all changes made in context type.

    a. Cancel reverts all changes made in context type.

    b. If you change type’s name to name that is already used by another type, then validation error will appear.

Context Type details - Edit Attributes

If you want to edit data in the Attributes section, follow these steps:

  1. Choose Context in Main toolbar.

  2. Left-click on a type you wish to edit.

    a. Left-clicking on type opens Context Type details screen.

  3. Choose Edit in Attributes section.

    a. Highlighted borders indicate that edit mode is active.

  4. Edit any data you need.

  5. Choose Save changes to save all changes made in context type.

    a. Cancel reverts all changes made in the context type.

Decision Tables

A decision table presents values in rows and columns. Each row describes a situation when given inputs (columns) result in certain outputs (also columns). In other words, a decision matrix displays decisions based on certain criteria. You can create a decision table in Higson (so-called a parameter), where you define input and output columns and then populate data with values in rows.

In order to see all Decision Tables select Decision Tables in the Main Toolbar.

After that, when you enter Decision tables, you will see a screen of Decision Tables

No. Column name Description
1. Name Full name of Decision table.
2. Tags List of all Tags assigned to the Decision table
3. Region List of all Regions the decision table are assigned to
4. Input levels List of input levels for business data
5. Last change The last modification date of the decision table
6. Actions List of quick access actions. Currently only remove action is available here. Remove action deletes decision table

On this screen, you can apply Filters to search for specific parameter or to narrow down the number of displayed parameters. You can also perform actions on one or multiple parameters.

You can see All Actions available for the parameters below:

No. Action Description
1 Checkboxes Select the top checkbox to select all decision tables in the view or select individual checkboxes to group decision tables for actions 5a, 5b, 5c, 5f, 5g, 5h, 5i.
2 + Add decision tables Opens a step-by-step decision tables wizard. Allows you to create new decision tables.
3 Upload Allows importing decision table’s from a ZIP file.
4 Hide filters Hides or reveals the Filters bar accordingly. If Filter bar is visible, then action Hide filters is available. If it’s hidden, then action Show filters is available.
5 More actions The drop-down menu that contains actions 5a-5i. Bear in mind that actions 5a, 5b, 5c, 5f, 5g, 5h, and 5i are available only if at least one decision table is selected (at least one checkbox is checked). Otherwise, the mentioned actions will be greyed out (see picture below the table).
6 Mass export to XLSx Downloads a ZIP file that contains XLSX file and files with decision tables body.
7a Extract codes Downloads an XLSX file that contains decision tables extract.
7b Download codes Download a TXT file with decision tables names.
7c Select from file Allows uploading a TXT file with decision tables. After uploading, all decision tables present in the file will be selected.
7e Compare with extract Allows uploading an XLSX file with decision tables extract. Makes comparison between the provided file and the environment.
7f Add region Adds regions to all selected decision tables.
7g Remove region Removes regions from all selected decision tables.
7h Manage tags Allows adding/removing tags to/from selected decision tables.
7i Remove Delete all selected decision tables.

Now we can see More actions drop-down menu, when no decision tables are selected

You can see all Filters available for decision tables below:

No. Filter name Description
1 Search text field Filter by any string provided by the user.
2 Tags Filter by assigned tags; only tags assigned to at least one decision table are visible for selection.
3 Region Filter by assigned regions; only regions assigned to at least one decision table are visible for selection.
4 Date range Filter by last change date in format YYYY/MM/DD - YYYY/MM/DD.

Decision tables - Add Decision table

If you want to add Decision tables follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Choose + Add Decision tabl in All actions bar.

    a. Choosing + Add Decision table opens a step-by-step wizard.

  3. In step 1. Name, you need to provide a unique decision table code/name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

    a. If you changed your mind and don’t want to create a new decision table, you can choose Cancel in step 1. Name.

  4. Choose Next.

    a. If you enter illegal characters, then the validation error will appear

    b. If the name you provided is already used by another decision table, then a pop-up dialog will appear, either close the pop-up by clicking Cancel or View existing decision table, that will redirect you to the appropriate Decision table and close the Decision table wizard.

  5. In step 2. Definition you may add a description, and assign regions and tags, but this is not necessary to proceed to the next step. When you check the option for external sources in the next step, you will be able to add them.

  6. Besides, we have the following selections to choose from

    During creating decision tables, we have the options described in points 1-4

    No. Name Description
    1 Match required If checked: when in matrix value won’t be found, it will return an error; if checked and no match is found in the matrix, the parameter will return null.
    2 Distinct filters Removes duplicated records from the result list.
    3 In memory index If not checked, then with every call to that parameter, its definition and matrix must be reloaded from the database. This checkbox is flagged if the parameter should be stored in the application cache.
    4 Dictionary value To define the decision table as a dictionary, there is a checkbox “Dictionary” that needs to be marked.
  7. Choose Next.

  8. In step 3. Levels you may add IN and OUT columns, but this is not necessary to proceed to the next step.

  9. Choose Next.

  10. In step 4. Matrix you may add matrix cells, but this is not necessary to proceed to the next step.

  11. Choose Save changes.

    a. Decision table with data you provided is created. You will be redirected to Decision table’s details screen.

Decision tables - upload

If you want to upload decision tables from a ZIP file, follow these steps:

  1. Choose Decision Tables in the Main Toolbar.

  2. Choose Upload in the “All Actions” bar.

    a. Choosing Upload brings up the Import decision table screen.

  3. Drag and drop the desired file or Click to upload a file and choose file in File Explorer.

    a. If you choose a file with an extension other than ZIP, then a validation error will pop up.

  4. When the progress bar reaches 100%, it means that all decision tables were uploaded correctly.

Decision tables - Mass export to XLSX

If you want to download one or more decision tables, follow these steps:

  1. Choose Decision Tables in the Main Toolbar.

  2. Select one or more.

    a. Select the top checkbox to select all decision tables in the view, or select individual checkboxes to select one or multiple

  3. From the drop-down menu More actions: choose Mass export to XLSx.

    a. If action Mass export to XLSx is grayed out, it means that no decision tables have been selected.

    b. Choosing Mass export to XLSx downloads a ZIP file that contains files with decision tables.

Details of zip

And view of

Decision tables - Extract codes

If you want to extract one or more decision tables, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Select one or more decision tables

    a. Select the top checkbox to select all decision tables in the view or select individual checkboxes to select one or multiple.

  3. From drop-down menu More actions choose Extract codes

    a. If action Extract codes is greyed out, it means that no decision tables have been selected.

    b. Selecting Extract codes downloads a XLSX file that contains Code, SHA and Region columns

Decision tables - download codes

If you want to download one or more decision tables codes, follow these steps:

  1. Choose decision table in Main toolbar.

  2. Select one or more decision tables.

    a. Select the top checkbox to select all decision tables in the view, or select individual checkboxes to select one or multiple

  3. From drop-down menu More actions choose Download codes

    a. If Download codes action is greyed out, it means that no decision tables have been selected.

    b. Selecting Download codes downloads a TXT file that contains decision tables’ codes

Decision tables - Select from file

If you want to select one or more Decision tables from the file, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. From drop-down menu More actions choose Select from file

    a. Choosing Select from file brings up the Select from file screen

  3. Drag and drop the desired file or Click to upload a file and choose file in File explorer.

    a. Correct TXT file should look like this:

    b. If you choose a file with an extension other than TXT, then a validation error will pop up.

  4. When the progress bar reaches 100%, you will be informed which decision tables will be selected.

  5. Choose Select.

    a. All decision tables that were present in the Selected Elements table get selected.

Decision tables - Compare with extract

Makes a comparison between the file and the environment, and gives information on which elements are the same, and which changes are only in the file or only in the environment.

  1. Choose Decision tables in Main toolbar.

  2. From drop-down menu More actions choose Compare with extract.

    a. Choosing Compare with extract brings up the Compare with extract screen.

  3. Drag and drop the desired file or Click to upload a file and choose file in the File explorer.

    a. Correct XLS/XLSX file should look like this

    b. If you choose a file with extension other than XLS/XLSX, then validation error will pop up

  4. When the progress bar reaches 100%, you will be informed about the status of all decision tables present in the environment and the extract file you provided.

  5. In the Select section (visible below the table with decision table status), choose which Decision tables will be selected.

    a. You can select multiple options.

    b. Matching: decision tables that are equal between the environment and the extract file will be selected.

    c. Different regions: decision tables that are equal but with different regions between the environment and the extract file will be selected.

    d. Different name: decision tables that are equal but with different names between the environment and the extract file will be selected.

    e. Missing from extract: decision tables that are present in the environment but absent from the extract file will be selected.

  6. Choose the Select Button.

    a. If the Select button is grayed out, it means that no checkboxes were selected in step 5.

    b. All Decision Tables that match the criteria provided in step 5 are selected.

Decision tables - Add region

If you want to add a region to one or more decision tables, follow these steps:

  1. Choose Decision Tables in the Main Toolbar.

  2. Select one or more decision tables without a Region.

    a. Select the top checkbox to select all decision tables in the view or select individual checkboxes to select one or multiple decision tables.

  3. From the drop-down menu More actions, choose Add region.

    a. If action Add region is grayed out, it means that no decision tables have been selected.

    b. Choosing Add Region brings up the Manage Versioning screen.

  4. Select a Region and one or more versions.

  5. Select Change.

  6. The region has been assigned to the decision tables

Decision tables - Remove region

If you want to remove a region from one or more decision tables, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Select one or more Decision tables with a Region.

    a. Select the top checkbox to select all decision tables in the view or select individual checkboxes to select one or multiple.

  3. From drop-down menu More actions choose Remove region.

    a. If action Remove region is greyed out, it means that no function has been selected.

    b. After choosing Remove region action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. Regions are being removed from all selected decision tables.

Decision tables - Manage tags

If you want to manage tags from one or more decision tables, follow these steps:

  1. Select the decision tables on the main toolbar.

  2. Select one or more untagged decision tables.

  3. From the More Actions drop-down menu, select Manage Tags.

  4. Select the tags you are interested in and click Save.

Decision tables - remove

If you want to delete one or more decision tables, follow the steps below:

  1. Choose the Decision tables in the Main toolbar.

  2. Select one or more decision tables.

    a. Select the top checkbox to select all decision tables in the view, or select individual checkboxes to select one or multiple

  3. From the drop-down menu More actions, choose Remove.

    a. If action Remove is grayed out, it means that no decision tables have been selected.

    b. After choosing Remove action, a confirmation pop-up will appear.

  4. Choose Confirm.

  5. All selected decision tables are deleted from the environment

Decision tables details

You can access decision table details by left-clicking on the specific decision table in the List of all decision tables. The decision tables details screen contains all information about the decision tables, including their description, assigned regions, tags, and others.

And you can see the available actions below:

No. Name Description
1 Duplicate Allows to duplicate decision table.
2 Download Downloads XLSX file with decision table.
3 Import table Allows to upload file XLSX or ZIP.
4 More actions Drop-down list that contains actions 4A-4G.
4A Shows history Opens a new screen with a table of all modifications made on the decision table.
4B Rename Allows you to change the name.
4C Attach/Detach Allows you to add/remove a region to/from the Decision table. Attach region is available if there are no regions added to the Decision table. Detach region is available if there is a region added to the Decision table.
4D Create Alias Creates a copy of the decision table with its own code.
4E Find usages Redirects you to global search where you may find every reference to that decision table.
4F Remove Action removes the decision table.

Left-click on LEVELS AND DEFINITION to see more details about the Decision table.

No. Name Description
1 Definition section Definition of Decision table. Contains information such as:
- Description of Decision table
- Assigned Tags
- Created Aliases
2 Levels section Levels of Decision table. Contains information about created IN Columns and OUT Columns.
3 IN Columns section IN Columns table contains all IN Columns created in Decision table.
3a Unique Code Unique Code of IN Column.
3b Column Name Name of IN Column.
3c Value Type Informs about Value Type of IN Column.
3d Value Source Value Source of IN Column.
3e Matcher Informs about the selected matcher for IN Column.
3f Union Informs if Union checkbox was selected for IN Column.
4 OUT Columns section OUT Columns table contains all OUT Columns created in Decision table.
4a Unique Code Unique Code of OUT Column.
4b Column Name Name of OUT Column.
4c Value Type Informs about Value Type of OUT Column.
4d Blob Informs if Blob checkbox was selected for OUT Column.
4e Tab Informs if Tab checkbox was selected for OUT Column.

Decision tables details - Duplicate

If you want to duplicate specific Decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to duplicate.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. Choose Duplicate in Available actions.

    a. Choosing Duplicate brings up the Duplicate table screen.

  4. Enter unique Decision table name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

  5. Choose Save changes.

    a. If you entered illegal characters, then name filed will highlight with red color.

    b. If the name you provided is already used by another Decision table, then pop-up dialog will appear. You can either close the pop-up by clicking Cancel or you can click View existing Decision table, that will redirect you to the appropriate Decision table.

Decision tables details - Download

If you want to download a specific Decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to download.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. Choose Download in Available actions.

    a. Choosing Download downloads an XLSX file that contains data of Decision table.

Decision tables details - Show history

If you want to check all modifications made on Decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you want to check.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Show history.

    a. Choosing Show history brings up the Decision table history screen.

    No. Column name Description
    1 Operation Type Type of operation made on the Decision table.
    2 Author User’s login that made an operation.
    3 Modification Date Date of the published session that made an operation.
    4 Region Region and version assigned to the Decision table at the time of modification.
    5 Actions View redirects to an archived version of the Decision table. In this screen, you can choose Restore to restore that version of the Decision table.

Decision tables details - Rename**

If you want to rename a Decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to duplicate.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Rename.

    a. The Highlighted border around the Decision table name indicates that the name is editable.

  4. Enter unique Decision table name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

  5. Choose Save name.

    a. If you enter illegal characters, then the rename field will highlight with red color.

    b. If the name you provided is already used by another Decision table, then pop-up dialog will appear. You can either close the pop-up by clicking Cancel or you can click View existing decision table, that will redirect you to the appropriate Decision table.

Decision tables details - Attach region

If you want to attach a region to a specific Decision table from Decision table details level, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on Decision table with no region assigned you want to attach a region.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Attach region

    a. If Detach region action is available, it means that the Decision table has assigned the region already. You need to Detach region (hyperlink) before you will be able to attach a new region.

    b. Choosing Attach region brings up Manage versioning screen.

  4. Select Region and one or more Version.

  5. Choose Change

    a. The Region is being assigned to the Decision table.

Decision tables details - Detach region

If you want to detach a region from a specific Decision table from

Decision table details** level, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table with a region assigned you want to detach region.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Detach region.

    a. If Attach region action is available, it means that the Decision table has no region assigned.

    b. After choosing Detach region action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. The Region is being detached from the Decision table.

Decision tables details - Create alias

If you want to create an alias to specific Decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on Decision table you want to create alias.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Create alias.

    a. Choosing Create alias brings up the Create alias screen.

  4. Enter unique alias name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

  5. Choose Save change.

    a. If you enter illegal characters, then the rename field will highlight with red color.

    b. If the name you provided is already used by another Decision table, then a pop-up message will appear.

Decision tables details - Find usages

If you want to check where Decision table is used, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you want to check.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Find usages.

    a. Choosing Find usages brings up the Find usages screen.

    No. Column name Description
    1 Element Type Type of element that uses this Decision table.
    2 Name Name of the element that uses this Decision table.
    3 Value Value of the element that uses this Decision table. This column is filled only for Attribute value element; for other elements, this column is empty.
    4 Field Informs about the type of field where the Decision table is used.
    5 Number of applied filters Informs the user how many filters of a specific type are applied.
    6 Unselect all filters Unselects all filters of a specific type inside.

    b. You can apply filters to narrow down the displayed results. All available filters are visible in the picture below.

Decision tables details - Remove

If you want to delete specific Decision table from Decision table details level, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to remove.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. From drop-down menu More actions choose Remove.

    a. After choosing Remove action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. The Decision table is deleted from the environment.

Decision tables details - Edit Matrix

If you want to edit matrix in a specific decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to edit.

    a. Left-clicking on the Decision table opens the details screen.

  3. Choose Edit in Matrix section.

    a. Highlighted borders indicate that the edit mode is active.

  4. Edit any data you need.

  5. Choose Save changes to save all changes made in the Decision table.

    a. Cancel reverts all changes.

Decision tables - Edit Levels and Definition

If you want to edit levels or definition in a specific decision table, follow these steps:

  1. Choose Decision tables in Main toolbar.

  2. Left-click on the Decision table you wish to edit.

    a. Left-clicking on Decision table opens Decision table details screen.

  3. Expand LEVELS AND DEFINITION

  4. Choose Edit in Definition section or in Levels section. Only one section can be edited at given time.

    a. Edit mode for Definition section.

    b. Edit mode for Levels section.

  5. Edit any data you need.

  6. Choose Save changes to save all changes made in the Decision table.

    a. Cancel reverts all changes.

Domain Configuration

In Domain configuration we can create instances of domain types and configure their attributes with use of Decision tables or Functions.

In order to see Domain Configuration, select Domain in Main Toolbar.

After you enter Versions you will see screen of configuration from ROOT perspective:

No. Name Description
1. Tree search field Filter by any string provided by user. Configuration tree navigates to all Elements matching the provided criteria.
2. Download Domain Downloads a XML file that contains entire Domain Configuration. To learn more about downloading Configuration go here
3. Upload Domain Allows to upload Domain Configuration from a XML file. To learn more about uploading Configuration go here
4. Configuration tree Tree structure of your product.
5. Delete tree Deletes all Configuration Elements. To learn more about delete all Configuration elements go here
6. Collection Collections with all created elements.
6a. Add new element to tree Allows to create new Configuration Elements. To learn more about adding Configuration Elements go here

User can Expand/Collapse a tree by clicking on the arrows.

Configuration Collection:

Domain configuration - Add new collection elements

If you want to add a new collection elements, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Navigate to Collection you want to add new elements to.

  3. Choose Add new elements to tree in desired Collection.

    a. Choosing Add new elements to tree brings up Add to tree screen.

  4. Choose Add elements radiobutton.

  5. On this screen, you:

    a. need to provide unique Element code. Code can contain only characters from collection a-z; 0-9; “-”; “_” and it can’t start with “-”.

    i. If the code you provided is not unique, then borders will be highlighted with red color and warning message will appear.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on the field to see tooltip with more information.

    b. need to provide Element name. Name can contain only characters from collection a-z; A-Z; 0-9; “-”; “_” and white-space characters.

    i. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    c. can provide Element description. Description can contain only characters from collection a-z; A-Z; 0-9; “:”; “.”; “,”; “-”; “_” and white-space characters.

    i. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    d. can add additional Elements by clicking + NEW ELEMENT.

  6. Choose Add.

    a. Elements with data you provided are created.

Domain Configuration - Add reference

If you want to add a reference, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Navigate to the Collection for which you want to create reference.

  3. Choose Add new elements to tree in desired Collection.

    a. Choosing Add new elements to tree brings up Add to tree screen.

  4. Choose Add a reference radiobutton.

    a. If the Add button is greyed out, it means that you have not chosen any Collection Element to refer to yet.

  5. Choose Collection Element you want to create a reference to.

    a. If there are no Elements to refer to, then an information message will be placed instead of the configuration tree.

  6. Choose Add.

    a. Reference to chosen Element is created.

Domain Configuration - Add a copy

If you want to copy Collection or Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Navigate to the Collection for which you want to copy Elements.

  3. Choose Add new elements to tree in desired Collection.

    a. Choosing Add new elements to tree brings up Add to tree screen.

  4. Choose Add a copy radiobutton.

  5. In step 1. Description, you:

    a. need to provide unique Element code. Code can contain only characters from collection a-z; 0-9; “-”; “_” and it can’t start with “-”.

    i. If the code you provided is not unique, then borders will be highlighted with red color and warning message will appear.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    b. need to provide unique Element name. Name can contain only characters a-z; A-Z; 0-9; “-”; “_” and white-space characters.

    i. If the name you provided is not unique, then borders will be highlighted with red color and warning message will appear.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

  6. Choose Next.

  7. In step 2. Element to copy you need to choose which Collection Element you want to copy.

    a. If the Add button is greyed out, it means that you have not chosen any Collection Element to copy.

  8. Choose Add.

    a. Copy of chosen Collection Element is created.

Domain Configuration - Download Domain Configuration

If you want to download Domain Configuration, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Download Domain Configuration in Configuration tree.

    a. Choosing Download Domain Configuration downloads an XML file that contains all configuration Collections, Collection Elements, Definition Types and all dependencies between them.

Domain Configuration - Upload Domain Configuration

If you want to upload Domain Configuration, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Upload Domain Configuration in Configuration tree.

    a. Choosing Upload Domain Configuration brings up Import from XML screen.

    b. If you select checkbox Remove elements not included in file, then warning will appear.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XML, then validation error will pop up

    b. If there is something wrong with data in XML file, then validation error will appear.

  4. Choose Upload

  5. When the progress bar reaches 100%, it means that domain definition was uploaded correctly.

    a. If a validation error occurs (see above), then an upload process is being aborted.

    b. If you checked checkbox Remove elements not included in file in step 2, then adequate information about changes will appear after uploading a file.

Domain Configuration - Delete tree configuration

If you want to delete the entire Domain Configuration, follow these steps:

  1. Choose Domain in Main toolbar

  2. Choose Delete tree configuration.

    a. After choosing Delete tree configuration button, confirmation pop up will appear.

  3. Choose Confirm.

    a. The Entire Domain Configuration is deleted from the environment.

  4. Choose Session.

    a. After choosing Session button, Session preview screen will appear.

  5. Choose Publish changes.

Collection Element details screen

You can access Collection Element details by left-clicking on the specific Element in the Domain Configuration tree.

No. Name Description
1 Collection Element details Collection Element details include information about assigned Region, assigned Tags and description of Collection Element.
1a Definition Type code Type code from Domain Definition.
1b Assigned Tags List of all Tags assigned to the Element.
1c Collection Element Description of Collection Element.
2 Collection Element attributes List of all Global and Local Attributes created in Collection Element.
2a Attributes Group name Name of Attributes Group.
2b Global Attributes Global Attributes are defined by Types in Domain Definition.
2c Local Attributes Local Attributes are created in Collection Element by User.
3 Edit Enables Collection Element edit mode. To learn more about editing collection element go here
4 Clone Allows to clone Collection Element. To learn more about cloning collection elements go here
5 Delete element Deletes Collection Element. To learn more about deleting collection element go here
6 Attach/Detach region Allows you to add/remove a region to/from the Collection Element.
- Attach region is available if there are no regions added to Collection Element
- Detach region is available if there is a region added to Collection Element
If User has opened session, then button is greyed out.

Collection Element details - Edit

If you want to edit data in specific Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element you wish to edit.

  3. Choose Edit.

    a. Highlighted borders indicate that edit mode is active.

  4. Edit any data you need.

  5. Choose Save changes to save all changes made in Collection Element.

    a. Cancel reverts all changes made in the Collection Element.

Collection Element details - Add local attribute

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element you wish to add local attribute.

  3. Choose Edit.

  4. Choose Add local attribute and you:

    a. need to provide unique Attribute code. Code can contain only characters from collection “a-z”; “A-Z”; “-”; “_”.

    i. If you entered the same code in at least two attributes, then borders will be highlighted with red color, and you will not be able to save changes.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    b. need to provide Attribute name. Name can contain only characters from collection “a-z”; “A-Z”; “0-9”; “-”; “_” and white-space characters.

    i. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    c. need to provide Attribute value. Value can contain any characters.

  5. Choose Save changes.

Collection Element details - Reset to default value

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element you wish to add local attribute.

  3. Choose Edit.

  4. Choose Reset to default value for specific Global Attribute.

    a. Attribute’s value is changed to the value defined in the appropriate Definition Type.

  5. Choose Save changes.

Collection Element details - Clone

If you want to clone specific Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element you wish to clone.

  3. Choose Clone.

    a. Choosing Clone brings up the Clone element screen.

  4. You need to provide:

    a. unique code. Code can contain only characters from collection “a-z”; “A-Z”; “-”; “_”.

    i. If the code you entered is not unique, then borders will be highlighted with red color and warning message will appear.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

    b. unique name. Name can contain only characters from collection"a-z"; “A-Z”; “0-9”; “-”; “_” and white-space characters.

    i. If the code you entered is not unique, then borders will be highlighted with red color and warning message will appear.

    ii. If you enter illegal characters, then borders will be highlighted with red color. Hover on field to see tooltip with more information.

  5. Choose Clone.

    a. Collection Elements are being cloned.

Collection Element details - Delete element

If you want to delete specific Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element you wish to delete.

  3. Choose Delete element.

    a. After choosing Delete element action, confirmation pop up will appear.

  4. Choose Confirm.

    a. Collection Element is deleted from the environment.

Collection Element details - Attach region

If you want to attach a region to Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element with no region assigned you want to attach a region.

  3. Choose Attach region

    a. If Attach region action is greyed out, it means that user has active open session.

    b. If Detach region action is available, it means that Collection Element has assigned reason already. You need to Detach region before you will be able to attach a new region.

    c. Choosing Attach region brings up Manage versioning screen.

  4. Select Region and one or more Version.

  5. Choose Change.

    a. Region is being assigned to the Collection Element.

Collection Element details - Detach region

If you want to detach a region from Collection Element, follow these steps:

  1. Choose Domain in Main toolbar.

  2. In the Configuration tree, left-click on Collection Element with a region assigned you want to detach a region.

  3. Choose Detach region.

    a. If Detach region action is greyed out, it means that user has active open session.

    b. If Attach region action is available, it means that Collection Element has no region assigned.

    c. After choosing Detach region action, confirmation pop up will appear.

  4. Choose Confirm.

    a. The Region is being detached from Collection Element.

Domain Definition

In Domain definition we can design domain types, their relationships and attributes. In order to see Domain Definition, select Domain in Main Toolbar.

Select Definition tab.

After you enter Definition you will see screen of all definition types:

No. Name Description
1. Tree search Filter by any string provided by the user. Definition tree navigates to all Types matching the provided criteria.
2. Download Downloads an XML file that contains the entire Domain Definition. To learn more about downloading the Definition, go here.
3. Upload Domain Allows uploading Domain Definition from an XML file. To learn more about uploading the Definition, go here.
4. Definition tree A visual representation of dependencies between Definition Types.
5. Delete tree Deletes all Definition Types. Action is available only if: - User’s session is closed, - The Domain Configuration section is empty. Otherwise, the action is greyed out.
6. Types search
7. Add a new Type Allows creating new Definition Types. To learn more about adding Definition Types, go here
8. Tiles view Enables viewing Definition Types as tiles.
9. List view Enables viewing Definition Types as a list.
10. All Definition Types Every Definition Type created is visible here.
10a. Configuration ROOT Configuration ROOT is marked more distinctively from other Definition Types. Borders of ROOT are highlighted, and the label “root” is visible.

Definition Type tile

List view of Definition types

Domain Definition - Add a new type

If you want to add a new definition type, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Choose ADD A NEW TYPE +

    a. Choosing ADD A NEW TYPE + opens a step-by-step Definition Type wizard.

  4. In step 1. Description, you:

    a. need to provide unique Type code. Code can contain only characters from collection a-z; 0-9; “-”; “_” and it can’t start with “-”.

    i. If entered code in step 1. Description is already used by another type, then validation error will appear.

    b. need to provide Type name. Name can contain only characters from collection a-z; 0-9; “-”; “_” and it can’t start with “-”.

    c. can provide Type description. Description cannot contain characters like “<”; “>”; “@”; “$”; “|” and it * cannot* start with any “special character”, for example “!”

    d. If you change your mind and don’t want to create a new type, you can choose Cancel in step 1. Name.

  5. Choose Next.

    a. If you enter illegal characters in code, name or description field, then borders will be highlighted with red color, and you will not be able to proceed to the next step. Hover mouse over the field to see tooltip with more details.

  6. In step 2. Components you may add/duplicate/remove components. This data is not necessary to save a type.

    a. If you decide to add a component, you must provide code (unique), name and type code.

    i. Type code is a drop-down list with codes of all types

    b. If you entered the same code in at least two components, then borders will be highlighted with red color, and you will not be able to proceed to step 3. Business attributes

    c. If you enter illegal characters in code or name field, then borders will be highlighted with red color, and you will not be able to proceed to the next step. Hover mouse over the field to see tooltip with more details.

    d. If you choose Previous you will go back to step 1. Description

  7. Choose Next.

  8. In step 3. Business attributes you may add/duplicate/remove global attributes. This data is not necessary to save a type.

    a. If you decide to add business attributes, you must provide code unique name. Providing default value is optional.

    b. If you entered the same code in at least two components, then borders will be highlighted with red color, and you will not be able to save a type.

  9. Choose Save changes.

    a. If you entered the same code in at least two attributes, then borders will be highlighted with red color, and you will not be able to save a type.

Domain Definition - Download Domain Definition

If you want to download Domain Definition, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Choose Download Domain Definition in Definition tree.

    a. Choosing Download Domain Definition downloads an XML file that contains all definition types and all dependencies between definition types. Example file:

Domain Definition - Upload Domain Definition

If you want to upload Domain Definition, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Choose Upload Domain Definition in Definition tree.

    a. Choosing Upload Domain Definition brings up Import from XML screen.

    b. If you select checkbox Remove elements not included in file, then warning will appear.

  4. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. Correct XML file should look like this:

    b. If you choose a file with extension other than XML, then validation error will pop up

  5. Choose Upload.

  6. When the progress bar reaches 100%, it means that domain definition was uploaded correctly.

    a. If validation error occurs (see above), then an upload process is being aborted.

    b. If you checked checkbox Remove elements not included in file in step 3, then adequate information about changes will appear after uploading a file.

Domain Definition - Delete tree definition

If you want to delete the entire Domain Definition, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Check the status of Delete tree definitione buton:

    a. If button is greyed out, continue from step 4. Before deleting entire domain definition, you need to delete entire domain configuration first and publish session.

    b. If buton is available, continue from step 11.

  4. Choose Configuration tab.

  5. Choose Delete tree configuration.

    a. After choosing Delete tree configuration button, confirmation pop-up will appear.

  6. Choose Confirm.

    a. The Entire Domain Configuration is deleted from the environment.

  7. Choose Session.

    a. After choosing Session button, Session preview screen will appear.

  8. Choose Publish changes.

  9. Choose Domain in Main toolbar.

  10. Choose Definition tab.

  11. Choose Delete tree definition button.

    a. After choosing Delete tree configuration button, confirmation pop-up will appear.

  1. Choose Confirm.

    a. The Entire Domain Definition is deleted from the environment.

Definition Type details screen

You can access Definition Type details by left-clicking on the specific type tile in the Domain Definition tab. You can also see Definition Type details by changing from Tiles view to List view.

Tiles view

List view

You can see Available actions for the Definition Type below:

No. Action Description
1. Delete type Deletes definition type. To learn more about deleting definition type, go here.
2. Edit Enables definition type edit mode. To learn more about editing definition type, go here

Definition Type details - Delete type

If you want to delete a specific Definition Type, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Left-click on a definition type you wish to delete.

    a. Left-clicking on a definition type brings up Definition Type details screen.

  4. Choose Delete type.

    a. After choosing Delete type action, confirmation pop-up will appear.

  5. Choose Confirm.

    a. Definition type is deleted from the environment.

    b. If a definition type is used in the Domain Configuration, then validation error will appear.

Definition Type details - Edit

If you want to edit data in specific definitione type, follow these steps:

  1. Choose Domain in Main toolbar.

  2. Choose Definition tab.

  3. Left-click on a definition type you wish to edit.

    a. Left-clicking on a definition type brings up Definition Type details screen.

  4. Choose Edit.

    a. Highlighted borders indicate that edit mode is active.

  5. Edit any data you need.

  6. Choose Save changes to save all changes made in definition type.

    a. Cancel reverts all changes made in the definition type.

    b. If components you edit are used in Domain Configuration, then validation error will appear.

License

Licenses

Licenses are a screen that allows you to manage licenses. You can add new licenses and remove old ones. To access the license screen, please select Tools in Main Toolbar and select Licenses

After you enter Licenses you will see screen of all licenses:

No. Column name Description
1. License number Unique license identification number. You can sort table by License number pressing arrow icon.
2. Status This column indicates the current status of the license. It can have several possible labels such as active, expired. The status provides a quick way to determine if the license is currently valid and its scope. You can sort table by Status pressing arrow icon.
3. Licensee Title of the License. You can sort table by Licensee pressing arrow icon.
4. Valid from Date of the license validity. You can sort table by Valid from date pressing arrow icon.
5. Valid to Date of the license expire. You can sort table by Valid to date pressing arrow icon.
6. Permitted CPU Information about the maximum number of CPU cores cores which the software or service covered by the license can be used. You can sort table by Permitted CPU cores pressing arrow icon.
7. special Additional license conditions. You can sort table conditions by Special conditions pressing arrow icon.
8. actions List of quick access actions. Currently only Remove action is available here. Remove action delete desired license
No. Filter name Description
1. Search text field Filter by any string provided by the user.
2. Status Filter by selected license status

Action - Add license

If you want to add a new license follow these steps:

  1. Select Tools in Main Toolbar and select Licensee

  2. Choose + Add license

  3. Enter your license code and press Add button

    a. If a valid license code is entered, information about the license will appear.

    No. Column name Description
    1. License number Unique license identification number.
    2. License Title of the License
    3. Valid from Date of the license validity.
    4. Valid to Date of the license expire

    b. If an invalid license code is entered, an error message about the incorrect license code will appear.

Action - Remove license

If you want to remove license choose Delete icon and confirm it pressing Confirm button

Logging in

Logging in is necessary to use Higson features and functionalities. Once Higson Studio is opened, you will be directed to the login page automatically.

Before logging in, ensure that you have the following:

  • A registered account: You must have a valid account created within Higson. If you have not signed up yet, please contact your system administrator.
  • Username and password: Make sure you have your unique username and password associated with your account. If you do not remember your credentials, there is a Forgot Password option available on the login page. Utilize this option to reset your password.

Logging in steps

  1. Launch Higson Studio
  2. In Username field, enter your unique username.
  3. In Password field, enter the password associated with your account.
  4. Click on Log in button

Resetting password

If you have forgotten your password or need to change it for any other reason, you can utilize the password reset option. The password reset process involves the following steps:

  1. Click Reset your password.

  2. Enter email linked to your Higson account. Check your email inbox, including the spam or junk folder, for the password reset email.

  3. Upon clicking the hyperlink provided in the email, you will be directed to a page where you can set a new password for your account. Enter a new password. Retype it in the confirmation field.

  4. Once you have entered and confirmed your new password, click Reset password button to save your new password.

Profiles

Profiles in our environment are entire data modules. The domain and context are directly assigned to the profile and cannot exist without it. All the profiles existing in the environment are listed above the toolbar.

Selecting profile

  1. Open the dropdown menu on the right side of the toolbar.

  2. Choose a profile from the list.

Profiles screen

In order to access profiles screen open Tools in Main Toolbar and select profiles.

After you enter Profiles you will see screen of all profiles:

No. Column name Description
1. Name Full profile name
2. Description Optional profile description
3. Default tag Tag assigned to the profile. To learn more about assigning Tags go here [Hyperlink do przypisywania tagów]
4. Add tag to decision table Flag adding selected tag automatically for each new decision table within the given profile
5. Add tag to functions Flag adding selected tag automatically for each function within the given profile
6. Filter decision tables Flag filtering the view of the list of the decision tables to show ones containing the selected tag
7. Filter functions Flag filtering the view of the list of the functions to show ones containing the selected tag
8. Actions List of quick access actions. Edit action (pencil) allows changing other columns within a profile. After it’s selected, two buttons will emerge in its place: click Save to save changes or Cancel to reject them. Remove action (bin icon) deletes the desired profile.
9. Add profile Adds a new profile. Enter its name and optionally other data to save it. You can click Cancel to remove it.

Adding new profile

In order to add a new profile, you need to:

  1. Choose + Add profile

  2. Provide unique Profile name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

    a. If you enter illegal characters in name field, then borders will be highlighted with red color, and you will not be able to save tag.

  3. Optional: add description and the rest of profile properties

  4. Choose Save

    a. Profile with entered data is created.

    b. If you enter the same name as one of the Profiles already created, then validation error will appear.

Runtime tokens

Runtime tokens are a screen that allows you to manage tokens. You can add new token and remove old ones. To access the runtime tokens screen, please select Tools in Main Toolbar and select Runtime tokens.

After you enter Runtime tokens you will see screen of all tokens:

No. Column name Description
1. Checkbox Checkbox allows you to select all tokens.
2. Token Present token value.
3. User User to whom the token is assigned.
4. Expiration Token validity period date.
5. Actions List of quick access actions. Currently, only the Remove action is available here. The Remove action deletes the desired license.

If you hover on table row, you can click View value to see full Runtime token value

On the screen will present Value preview

Currently, there is only one filter Search which filter list of tokens by any string provided by user.

Runtime token actions

No. Action name Description
1. Add token Opens a runtime token wizard. Allows generating new tokens.
2. Delete tokens Allows removing all selected tokens.
Action - Add token

If you want to generate a new token for user, follow these steps:

  1. Select Tools in Main Toolbar and select Runtime tokens

  2. Chose + Add token

  3. In point 1 select the user for whom the token should be generated. In point 2 choose the date until which the token should be valid.

    a. If you leave the username empty, and you click Generate token button, you will see a validation error message

  4. Generate token by clicking in Generate token button

Action - Delete tokens

If you want to delete more than one token, you can use the checkbox on table left side and press Delete tokens. You will see the confirmation wizard where you can Confirm or Cancel your action.

Action - Delete single token

If you want to delete only one token, you can click on the trash icon in the Actions column**.** You will see the confirmation wizard where you can Confirm or Cancel your action.

Sessions

Configuration of the product in Higson is composed of:

  • Domain configuration
  • Decision tables
  • Functions

Operators make changes in configuration in work session. Open session (by this we understand every change made in range of configuration) is visible only to operator, who is making changes. In the moment of publication that session changes are seen by all the users and are applied to structure.

There are two basic ways to publish your session: by Main toolbar > Tools > Sessions or shortcut session button in the top right corner of the application Higson.

  1. When a user chooses to go through the main toolbar (A):

    the screen will show with a list of all sessions:

    While looking for specified session may filter possible matches by:

    • All sessions, Open, Published, Rejected (A)

    • Session id, Start date, End date, User (B)

    Your guidelines will be applied automatically. There is no need to fill all search cells or filter decision tables at once. Input only those which you find necessary. Sessions view is in the form of a table with columns (C):

    Id. Column name Description
    1. Status Status of session: Published, Open, Rejected
    2. User The user who owns the session
    3. Start date Date of creation of session
    4. End date Date of publishing or rejecting session
    5. Remote Flag informing if the session created by higson runtime rest
    6. Description Description of a session after publishing or rejecting

    When a session from the list is selected (by clicking on it) detail information will show:

    In this view, we can see a summary of the selected session: elements number, the start date of the session, and user owner (A).We can publish or reject changes in (B) (only if the Session in (A) is marked as Open). This view also contains three sections: Decision table, Domain, and Function with assigned table containing columns (C):

    Id. Column name Description
    1. Operation Operation on the element: Create, Update, or Delete
    2. ID ID number of element
    3. Element Element name
    4. Created/Modified Date of operation executed at the element
    5. Actions Column for reverting changes on one separate element on this session
  2. When the user chooses to go through the shortcut session button (B) in the top right corner of the application Higson**:**

    very similar session details to the previous one view will appear:

    After clicking on (A) Reject or Publish changes view will pop up:

    After confirmation, changes will be PUBLISH or REJECT with no message or a message in the description field filled.

    Sometimes after publishing a session, there is information about overriding changes. That means another user modified the same decision table while you were working on it. That means his changes probably are not in your current version of the decision table/function (or any objects you were working on). Then you may overwrite another user’s changes - which mean delete his changes and apply yours - or check what changes were made and apply them to your project - to not lose any important data. To check another user’s changes, go to the main toolbar and Main toolbar > Tools > Sessions (like in 1.). From the list of sessions, choose the one whose author is the other user. Then when detailed information about the session occurs, click on the change made on your object. Then you will see how that element looks after (that user) changes and may make a comparison with your current version, then apply any changes in your version by clicking on your session on the session list.

    What’s more, there is a possibility of occurring collision during publishing. That happens when another user makes changes to the same element at the same time. When this kind of situation takes place, the user should run a cohesion analysis to check which elements are the cause. If cohesion analysis is needed, then some changes must be reverted from the session and then (they may be) applied again in a new session on the base of updated elements.

Snapshot

Snapshot is one of the global download/upload tools available in the Higson system. This functionality allows you to download selected parts of the configuration to the .ZIP file and upload this into another environment. The contents of the .ZIP file are a directory structure with plain text files, making it easy to work with. Higson allows downloading and uploading snapshots.

Snapshot download

To see the Download snapshot view select Download snapshot in Tools from Main Toolbar:

After that, you will see a screen allowing you to choose the elements that you want to be in a snapshot:

  1. Profiles

  2. Domain

  3. Decision tables

  4. Functions

  5. Profile

  6. Tags

  1. Choosing the Profiles:

    The snapshot download will contain functions and decision tables, which are versioned inside the selected **profiles **. You can choose one or more profiles. In this case, the snapshot download will contain functions and decision tables from two selected profiles:

  2. Choosing the Domain:

    When you choose Domain snapshot download will contain the domain with published changes and the current user’s session changes by default.

  3. Choosing Decision tables:

    When you choose Decision tables snapshot download will contain decision tables:

    a) which will be from the current session if marked (A)

    b) which will be filtered by name if filled and added in (B)

    c) which will be marked by a specific tag if selected in (C)

  4. Choosing Functions:

    When you choose Functions snapshot download will contain functions - filtered the same way as Decision Tables in 1.3

  5. Choosing Profile:

    If you choose Profile, the snapshot download will contain the configuration of the profile.

    The data contained in the snapshot may contain elements also from the context (A). Context definition can only be downloaded together with the profile definition. If you do not mark the checkbox Profile, the snapshot download will contain only functions, decision tables, and tags.

  6. Choosing Tags:

    When you choose Tags snapshot download will contain tags.

    Finally, after applying configuration to snapshot download - to download the snapshot, you need to click the Download button (A):

Snapshot upload

In order to see Upload snapshot view select Upload snapshot in Tools from Main Toolbar:

Then Upload snapshot view will appear:

When you choose a file in (A) and click the Upload button (B), the upload will take place. When you choose the upload option (C) all changes from the snapshot will be published right away. After the snapshot uploads, summary results with detailed information will appear in a dropdown list form:

In summary, there is information on how many elements were in status:

No. Status Description
1. Imported Elements imported
2. Deleted Elements deleted
3. Errors Elements with errors occurred
4. Skipped Elements skipped
5. Not published Elements not published

Every status section can be expanded (A) for more detailed information with a description per element, e.g.:

Historical Snapshot uploads

There is also a historical Snapshot uploads view available. After clicking on (A) from the Upload snapshot view:

you will see the Snapshot uploads view with historical uploads in the form of a table:

with column names (C):

No. Column name Description
1. Date Date of snapshot upload
2. File name The file name of the file from which the snapshot was uploaded
3. User User name which performed snapshot upload
4. Status Summary status of snapshot upload: Warning, Skip, Ok, Error
5. Actions Contains expandable Details (D) if any message upload exists

After clicking on (D) you will be redirected to view with detailed information as a dropdown list like in the * Upload Snapshot* summary view.

Insertable field (B) allows filtering table data by Date and File name column.

Tags

Tags are helpful tools to search for decision tables and functions. They work as label, which can be assign to different elements in the system. Tags have no influence on work of Higson system, they are there only for our convenience.

In order to see Tags, select Tools → Tags in Main Toolbar.

After you enter Tags you will see screen of all Tags:

No. Column/Action name Description
1. Name Full tag name. You can sort this column by left-clicking on the arrows visible next to the label.
2. Description Full tag description. You can sort this column by left-clicking on the arrows visible next to the label.
3. Access control Shows which tags have restricted access. You can sort this column by left-clicking on the arrows visible next to the label.
4. Actions List of quick access actions available for each user. Available actions are:
- Find usages
- Edit
- Delete
5. Add tag Allows to create new Tags. To learn more about adding Tags go here.
6. Upload tags Allows to upload Tags from a XLSX file. To learn more about uploading Tags go here.
7. Download tags Downloads a XLSX file that contains data of all Tags currently on the environment. To learn more about downloading Tags go here

You can see all Filters available in Tags below:

No. Filter name Description
1. Search text field Filter by any string provided by user. Filtered by Name column.
2. Access control checkbox Filter by Access control column.

All actions visible in quick access action list are listed below:

No. Name Description
4. Actions List of quick access actions available for each tag.
4a. Find usages Redirects to Global search with the correct filters applied. To learn more about finding usages go here
4b. Edit Allows to edit tag’s data. To learn more about editing tag’s data go here.
4c. Delete Deletes tag. To learn more about deleting tag go here.

Tags - Add tag

If you want to add a new tag, follow these steps:

  1. Choose Tools → Tags in Main toolbar.

  2. Choose + Add tag.

    a. Choosing + Add tag adds new empty record to the List of all Tags.

  3. You:

    a. need to provide unique Tag name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”. i. If you entered illegal characters in name field, then borders will be highlighted with red color and you will not be able to save tag. b. can provide Tag description. Description can contain any characters. c. can select Access control checkbox to determine if Tag should have restricted access.

  4. Choose Save. a. Tag with entered data is created. b. If you entered the same name as one of Tags already created, then validation error will appear.

Tags - Upload tags

If you want to upload tags, follow these steps:

  1. Choose Tools → Tags in Main toolbar.

  2. Choose Upload. a. Choosing Upload brings up Upload tags screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer. a. If you will choose a file with extension other than XLSX, then validation error will pop-up.

  4. Choose Upload.

  5. When progress bar reach 100%, it mean that file was uploaded correctly.

    a. If validation error will occur (see above), then upload process is being aborted.

Tags - Download tags

If you want to download all tags currently on the environment, follow these steps:

  1. Choose Tools → Tags in Main toolbar.

  2. Choose Download.

    a. Choosing Download downloads a XLSX file, that contains data of all tags currently on the environment.

Tags - Find usages

If you want to know which elements use certain tags, follow these steps:

  1. Choose Tools → Tags in Main toolbar.
  2. Choose Find usages actions for desired Tag. a. Choosing Find usages redirects to Global search with the correct filters applied.

Tags - Edit

If you want to edit data in specific tag, follow these steps:

  1. Choose Tools → Tags in Main toolbar

  2. Choose Edit action for desired tag.

    a. If Tag is being used by any Elemetn, then Edit action is greyed out. b. Highlighted borders indicate, that edit mode is active.

  3. Edit any data you need.

    a. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with „-’’. If you entered illegal characters in name field, then borders will be highlighted with red color and you will not be able to save tag.

  4. Choose Save.

    a. Tag is being updated. b. If you entered the same name as one of Tags already created, then validation error will appear.

Tags - Delete tag

If you want to delete specific tag, follow these steps:

  1. Choose Tools → Tags in Main toolbar.

  2. Choose Delete action for desired tag. a. If Tag is being used by any Element, then Delete action is greyed out. b. After choosing Delete action, confirmation pop-up will appear

  3. Choose Delete.

    a. Specific Tag is being deleted from the environment. This action is irreversible.

Tester

Tester allows you to verify if the created Decision Table, Function and Domain Elements are working as intended. In order to see Tester, select Tools → Tester in Main Toolbar.

After you enter Tester you will see Test panel with a list of all tests:

No. Column/Action Name Description
1. Test Name Full test case name. You can sort this column by left-clicking on the arrows visible next to the label.
2. User User’s login that made the last modification in the test case. You can sort this column by left-clicking on the arrows visible next to the label.
3. Last Modified The last modification date of the test case. You can sort this column by left-clicking on the arrows visible next to the label.
4. Actions List of quick access actions. Currently only the Remove action (bin icon) is available here. The Remove action deletes the desired test case. To learn more about removing a specific test case, go here.
5. + Add Test Allows creating a new Test case. To learn more about adding Test cases, go here.
6. Upload Test Allows uploading Test case from an XLSX file. To learn more about uploading Test cases, go here.
7. Hide/Show Filters Hides or reveals the Filters bar accordingly. If the Filter bar is visible, then the action Hide filters is available. If it’s hidden, then the action Show filters is available.
- is visible, then action Hide filters is available.
- is hidden, then action Show filters is available.

You can see all Filters available in a Test panel below:

No. Filter Name Description
1. Search Text Field Filter by any string provided by the user.
2. Date Range Filter by last modified date in format YYYY/MM/DD-YYYY/MM/DD.
3. Modified By Filter by users who made the last modification in test cases.

Number in Hide/Show filters action indicates how many filters are active.

Tester - Upload test

If you want to upload a test case from Test panel screen, follow these steps:

  1. Choose Tools → Tester in Main toolbar.

  2. Choose Upload test.

    a. Choosing Upload brings up Upload test case screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XLSX, then validation error will pop up.

  4. When the progress bar reaches 100%, it means that test was uploaded correctly.

    a. You will be redirected to the uploaded Test case screen. Bear in mind, that Test case has not been saved yet. In order to save uploaded Test case, choose Save test.

    b. If validation error occurs (see above), then an upload process is being aborted.

Tester - Add test case

If you want to add a new test case, follow these steps:

  1. Choose Tools → Tester in Main toolbar.

  2. Choose + Add test.

    a. Choosing + Add test opens New Test case screen.

    No. Name Description
    1. Enter Test Name Enter unique test case name here. Test case name can contain only characters from collection a-z; 0-9; “-”, “_”, and it can’t start with “-”.
    2. Test Settings Bar Allows configuring delimiter - choose which delimiter ("," or “|”) will be used in the expected value. Default delimiter is “,”.
    3. + Add New Element Opens Add New Element screen. You can choose here which elements will be added to the Test Case. Available elements are: - Decision Tables - Functions - Domain Configuration Elements
    4. Download Test Downloads an XLSX file that contains all data from the currently opened Test Case.
    5. Upload Test Allows uploading Test Case from an XLSX file. To learn more about uploading Test Cases, go here.
    6. Save Test Allows saving Test Case. Action is grayed out until Tested Elements are provided.
    7. Run Test Runs the currently opened Test Case with set Test Settings. When the process is finished, then Test Results will be updated for each Tested Element.
    8. Tested Elements List of all elements added to the Test Case.
    9. Test Input Data List of all available Test Input Data for Tested Elements.
  3. Choose + Add new element. This step is necessary to save Test case.

    a. Choosing + Add new element brings up New element screen.

    No. Name Description
    1. Add to Test Add selected elements to the Test Case. Greyed out until at least one element is selected.
    2. Element Type Bar Allows switching between visible Element Types. Note that switching between different tabs will not uncheck already-checked elements.
    3. Elements Search Field Filters visible elements by any string provided by the user.
    4. Checkboxes Select one or multiple checkboxes to add elements to the Test Case.
  4. Select elements you wish to add to Test case.

    a. After you select at least one element, then Add to test button will activate.

  5. Choose Add to test.

    a. Selected elements are added to the Test case.

    b. Test input data is added automatically based on selected elements.

  6. In Enter test name field enter unique test name.

  7. In Expected value field enter value you expect. This step is optional to save a test case.

  8. In Test input data table fill Value fields accordingly. This step is optional to save a test case.

  9. Configure Test settings. This step is optional to save a test case.

  10. Choose Save test.

    a. Test case with data you provided is saved.

    b. If you enter the same name as one of the Test cases already created, then validation error will appear.

Tester - Remove test case

If you want to remove a specific test case, follow these steps:

  1. Choose Tools → Tester in Main toolbar.

  2. Choose Remove action (bin icon) for Test case you want to delete.

    a. After choosing Remove action, confirmation pop up will appear.

  3. Choose Confirm.

    a. Specific Test case is being removed from the environment. This action is irreversible.

Test case details screen

You can access Test case details screen by left-clicking on specific Test case in Test panel. Test case details screen looks exactly the same as New test screen.

No. Name Description
1. Test case name Enter unique test case name here. Test case name can contain only characters from the collection a-z; 0-9; “-”, and “_”, and it can’t start with ‘-’.
2. Test settings bar Allows configuring the delimiter - choose which delimiter ("," or “|”) will be used in the expected value. Default delimiter is “,”.
3. + Add new element Opens the Add new element screen. You can choose here which elements will be added to the Test case. Available elements are: - Decision Tables - Functions - Domain Configuration Elements
4. Download test Downloads an XLSX file that contains all data from the currently opened Test case. To learn more about downloading Test cases, go here.
5. Upload test Allows uploading a Test case from an XLSX file. To learn more about uploading Test cases, go here.
6. Save test Allows saving the Test case. Action is greyed out until Tested elements are provided.
7. Run test Runs the currently opened Test case with set Test settings. When the process is finished, then Test results will be updated for each Tested element.
8. Tested elements table List of all elements added to the Test case. - Name: Full code/name/path of the tested element. You can change the order of Tested elements by drag & dropping each element. - Type: Type of the tested element: Decision table, Function, or Domain. - Test Result: When the Run test process is finished, then the Test result column will be updated for each Tested element. Test result can take statuses as: - Success: Expected value matches value returned by the system based on Test input data values. - Failure: Expected value does not match the value returned by the system based on Test input data values. - Error: An error occurred while running the test for a specific Tested element. Check LOG in ACTIONS column for more information. - No expected value: Run test process finished with no errors, but there is no Expected value to compare with the value returned by the system based on Test input data values. - Expected Value: Value expected by the user. After the Run test process is started, then the Expected value will be compared with the value returned by the system based on Test input data values. - Actions: Available actions for each Tested element: - LOG: Informs about problems that occurred in Run test process for Tested element. If there are no LOGS to display, then the action is greyed out.
- Remove (bin icon): Removes the Tested element from the Test case.
8a. Name Full code/name/path of the tested element. You can change the order of Tested elements by drag & dropping each element.
8b. Type Type of tested element: Decision table, Function, or Domain.
8c. Test result When Run test process is finished, then Test result column will be updated for each Tested element. Test result can take status as: - Success: Expected value matches value returned by the system based on Test input data values. - Failure: Expected value does not match the value returned by the system based on Test input data values. - Error: An error occurred while running the test for a specific Tested element. Check LOG in ACTOINS column for more information. - No expected value: Run test process finished with no errors, but there is no Expected value to compare with the value returned by the system based on Test input data values.
8d. Expected value Value expected by the user. After Run test process is started, then Expected value will be compared with value returned by system based on Test input data values.
8e. Actions Available actions for each Tested element: - LOG: Informs about problems that occurred in Run test process for Tested element. If there are no LOGS to display, then action is greyed out. - Remove (bin icon): Removes Tested element from Test case.
8f. Tested elements Filter Tested elements by any string provided by the user. Filtered by Name column.
8g. Test result drop-down list Filter Test results by test results status.
9. Test input data table List of all available Test input data for Tested elements.
9a. Code Full Test input data code. You can change the order of Test input data by drag & dropping each of them.
9b. Type Type of Test input data i.e. string, integer, date etc.
9c. Value Value of Test input data entered by the user.
9d. Actions Available action for each Test input data: - Remove (bin icon): Removes Test input data from Test case. Bear in mind, that deleting Test input data may cause errors in test results.
9e. Test input data search field Filter Test input data by any string provided by the user. Filtered by Code column.

Test case details - Download Test case

If you want to download a specific test case, follow these steps:

  1. Choose Tools → Tester in Main toolbar.

  2. Left-click on Test case you wish to download.

    a. Left-clicking on Test case opens Test case details screen.

  3. Choose Download test.

    a. Choosing Download test downloads an XLSX file that contains data from currently opened Test case.

Test case details – Upload Test case

If you want to upload a test case from Test case details screen, follow these steps:

  1. Choose Tools Tester in Main toolbar.

  2. Choose + Add test or left-click on existing Test case in Test panel.

    a. choosing + Add test and left-clicking on Test case opens New Test case screen or Test case details screen accordingly.

  3. Choose Upload test.

    a. Choosing Upload test brings up Upload test case screen.

  4. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XLSX, then validation error will pop up.

  5. When the progress bar reaches 100%, it means that Test case was uploaded correctly.

    a. If a validation error occurs (see above), then an upload process is being aborted.

    b. Bear in mind, that if in step 2 you chose existing Test case, then uploaded Test case will overwrite it.

Test case details - Run test case

If you want to run a test case, follow these steps:

  1. Choose Tools Tester in Main toolbar.

  2. Left-click on Test case you wish to Run test for.

  3. Choose Run test.

    a. When Run test process is finished, then Test result column will be updated for each Tested element.

    Test result can take status as:

    i. Success - Expected value matches value returned by system based on Test input data values

    ii. Failure - Expected value does not match value returned by system based on Test input data values

    iii. Error - an error occurred while running test for specific Tested element. Check LOG in ACTIONS column for more information

    iv. No expected value - Run test process finished with no errors, but there is no Expected value to compare with value returned by system based on Test input data values.

    You can mouse over on test results for each Tested element to see value returned by system.

    b. You can filter Tested elements by selecting test result status in Test result drop-down list. The Number indicates how many statuses are selected.

Users

Users’ screen contains information about all users that are created. Only those users have access to Higson module that you are working on. In order to see Users, select Tools → Users in Main Toolbar.

After you enter Users you will see screen of all Users:

No. Column/Action name Description
1 Login Login associated with the account. Used for logging in to your Higson module. You can sort this column by left-clicking on the arrows visible next to the label.
2 First name First name of the user associated with the account. You can sort this column by left-clicking on the arrows visible next to the label.
3 Last name Last name of the user associated with the account. You can sort this column by left-clicking on the arrows visible next to the label.
4 Email E-mail address of the user associated with the account. You can sort this column by left-clicking on the arrows visible next to the label.
5 Roles All roles assigned to the account. You can sort this column by left-clicking on the arrows visible next to the label.
6 Status Current status of the account:
- New, inactive
- Active
- Blocked
- Closed You can sort this column by left-clicking on the arrows visible next to the label.
7 Created on Date of creation of a user. You can sort this column by left-clicking on the arrows visible next to the label.
8 Actions List of quick access actions available for each user. Available actions are:
- Edit
- Update password
- Show login history
- Delete user
9 + Add user Allows creating new Users. To learn more about adding Users, go here.
10 Download users Downloads an XLSX file that contains data of all Users currently on the environment. To learn more about downloading Users, go here
11 Upload users Allows uploading Users from an XLSX file. To learn more about uploading Users, go here.
12 Hide/Show filters Hides or reveals Filters bar accordingly. If Filter bar: - is visible, then action Hide filters is available. - is hidden, then action Show filters is available.

You can switch between Grants, Roles and Users screens by left-clicking on the desired Tab.

You can see all Filters available in Users tab below:

No. Filter Name Description
1. Search text field Filter by any string provided by the user. Filtered by the Login column.
2. Date range Filter by created on date in the format YYYY/MM/DD-YYYY/MM/DD.
3. Status Filter by the user’s account status.
4. Role Filter by assigned roles.

Number in Hide/Show filters action indicates how many filters are active.

All actions visible in a quick access action list are listed below:

No. Name Description
7. Actions List of quick access actions available for each user.
7a. Edit Allows to edit user data. To learn more about editing user data go here.
7b. Update Allows updating the user’s password. To learn more about updating the user’s password go here.
7c. Show login Shows login history. To learn more about login history go here.
7d. Delete user Deletes user. To learn more about deleting the user go here.

Users - Add user

If you want to add a new user, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Add user

    a. Choosing Add user opens a step-by-step Add a new user wizard.

  3. In step 1. Data, you:

    a. need to provide unique user’s login. Login can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “@”.

    b. need to provide user’s First name. First name can contain only characters from collection a-z; diacritical marks; space; “-”.

    c. need to provide user’s Last name. Last name can contain only characters from collection a-z; diacritical marks; space; “-”.

    d. need to provide unique user’s e-mail address. E-mail address can contain only characters from collection a-z; 0-9; “.”; “-”; “_”; “@”.

  4. Choose Next.

    a. If you enter illegal characters in any field, then adequate validation error will appear.

    i. For Login field

    ii. For First name field

    iii. For Last name field

    iv. For Email field

    b. If you enter Login or Email already used by another account, then adequate validation error will appear.

    i. For Login field

    ii. For Email field

  5. In step 2. User roles you can assign Roles from a drop-down list. You can select multiple roles. This step is optional to add user.

  6. Choose Next.

  7. In step 3. Account registration you can select if you want to manually set password for user, or you can send activation link to the e-mail address entered in step 1. Data.

    a. Bear in mind, that Activation link option is only available when property higson.studio.security.password.send-reset-tokens is configured within dedicated file application.properties or higson.properties

    b. If you choose the Password option, then there are a few Password requirements that need to be met in order to save an account. These requirements are:

    i. 10-128 characters—password can’t be shorter than 10 characters and can’t be longer than 128 characters

    ii. Lower case letter (a-z) - password must contain at least one lower case letter

    iii. No more than 2 identical characters in a row - you can’t type more than two identical characters in a row i.e. CC; cc; Cc is acceptable but CCC; ccc; CcC is not

    iv. New and confirmed password have to match - password typed in New password and Confirm new password must be exactly the same.

    v. Number (0-9) - password must contain at least one number

    vi. Uppercase letter (A-Z) - password must contain at least one upper case letter

    vii. Special character - password must contain at least one special character i.e. !; @; #; $; %; etc.

  8. Choose Save account.

    a. Account with entered data is created.

    b. If Password requirements aren’t met, then adequate requirement will be highlighted with red color, and you will not be able to save an account.

Users - Download users

If you want to download data of all users currently in the environment, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Download users.

    a. Choosing Download users downloads a XLSX file, that contains data of all users currently in the environment.

Users - Upload users

If you want to upload users, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Upload users.

    a. Choosing Upload users brings up Upload users screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XLSX, then validation error will pop up.

  4. Choose Upload.

  5. When the progress bar reaches 100%, it means that file was uploaded correctly.

    a. If a validation error occurs (see above), then an upload process is being aborted.

Users - Edit

If you want to edit data of a specific user, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Edit action for the desired user.

    a. Highlighted borders indicate that edit mode is active

  3. Edit any data you need:

    a. Login can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “@”.

    b. First name can contain only characters from collection a-z; diacritical marks; space; “-”.

    c. Last name can contain only characters from collection a-z; diacritical marks; space; “-”.

    d. E-mail address can contain only characters from collection a-z; 0-9; “.”; “-”; “_”; “@”.

  4. Choose Save.

    a. User’s account data is being updated.

    b. If you enter illegal characters in any field, then adequate validation error will appear.

    i. For Login field

    ii. For First name field

    iii. For Last name field

    iv. For Email field

    c. If you entered Login or Email already used by another account, then adequate validation error will appear.

    i. For Login field

    ii. For Email field

Users - Update password

If you want to update the password of a specific user, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Update password action for desired user.

    a. Choosing Update password brings up Update password screen.

  3. Enter new password in New password and Confirm new password fields.

    a. There are a few Password requirements that need to be met in order to update password. These requirements are:

    i. 10-128 characters - password can’t be shorter than 10 characters and can’t be longer than 128 characters

    ii. Lower case letter (a-z) - password must contain at least one lower case letter

    iii. No more than 2 identical characters in a row - you can’t type more than two identical characters in a row i.e. CC; cc; Cc is acceptable but CCC; ccc; CcC is not

    iv. New and confirmed password have to match - password typed in New password and Confirm new password must be exactly the same.

    v. Number (0-9) - password must contain at least one number

    vi. Uppercase letter (A-Z) - password must contain at least one upper case letter

    vii. Special character - password must contain at least one special character i.e. !; @; #; $; %; etc.

  4. Choose Change.

    a. The Password to the user’s account is being updated.

Users - Show login history

If you want to check the login history of a specific user’s account, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Show login history action for desired user.

    a. Choosing Show login history brings up Login history screen.

No. Name Description
1 Date Day and precise hour of login attempt. You can sort this column by left-clicking on the arrows visible next to the label.
2 Status Status of login attempt. Available statuses are: - Success - login attempt was successful. User logged in to Higson system. - Bad_credentials - login attempt failed. User provided the wrong password and was not able to login to Higson system. You can sort this column by left-clicking on the arrows visible next to the label.
3 Page Allows cycling through pages. Use buttons < Previous and Next > to change pages one at a time or type a specific page number in the text field to move directly to it.

Users - Delete user

If you want to delete a specific user, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Choose Delete user(bin icon) action for user you wish to delete.

    a. After choosing Delete user action, confirmation pop-up will appear.

  3. Choose Confirm.

    a. Specific User is being deleted from the environment. This action is irreversible.

Roles

Roles are the set of selected grants, multiple grants may be assigned to one Role. Roles screen contains information about all roles that are created.

In order to see Roles, select Tools → Users in Main Toolbar.

Then, select Roles tab.

After you enter Roles you will see screen of all Roles:

No. Column/Action Name Description
1. Code Full role code/name. Role code and Role name are interchangeable. You can sort this column by left-clicking on the arrows visible next to the label.
2. Created on Date of creation of a role. You can sort this column by left-clicking on the arrows visible next to the label.
3. Description Full role description. You can sort this column by left-clicking on the arrows visible next to the label.
4. Grants List of all grants assigned to the role.
5. Actions List of quick access actions available for each role. Currently only Delete role (bin icon) action is available. To learn more about deleting roles go here.
6. Add role Allows to create new Roles. To learn more about adding Roles go here.
7. Download roles Downloads an XLSX file that contains data of all Roles currently on the environment. To learn more about downloading Roles go here.
8. Upload roles Allows to upload Roles from an XLSX file. To learn more about uploading Roles go here.

You can switch between Grants, Roles and Users screens by left-clicking on the desired Tab.

Roles - Add role

If you want to add a new role, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Switch to Roles tab.

  3. Choose Add role.

    a. Choosing Add role opens Role screen.

  4. In Description section you:

    a. need to enter unique role code/name. Code/name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with „-’'.

    i. If you enter illegal characters in name field, then borders will be highlighted with red color, and you will not be able to save a role.

    b. need to provide role Description

  5. In the Grants section, you can select one or more grants to assign to a role.

  6. Choose Save changes.

    a. Role with entered data is created.

    b. If you enter the same name as one of the Roles already created, then validation error will appear.

Roles - Download roles

If you want to download data of all roles currently in the environment, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Switch to Roles tab.

  3. Choose Download roles.

    a. Choosing Download roles downloads an XLSX file that contains data of all roles currently in the environment.

Roles - Upload roles

If you want to upload roles, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Switch to Roles tab.

  3. Choose Upload roles.

    a. Choosing Upload roles brings up Upload roles screen.

  4. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XLSX, then validation error will pop up.

  5. Choose Upload.

    a. If there is something wrong with data in XLSX file, then validation error will appear.

  6. When the progress bar reaches 100%, it means that file was uploaded correctly.

    a. If a validation error occurs (see above), then an upload process is being aborted.

Roles - Delete role

If you want to delete a specific role, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Switch to Roles tab.

  3. Choose Delete role(bin icon) action for a role you wish to delete.

    b. After choosing Delete role action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. Specific Role is being deleted from the environment. This action is irreversible.

Grants

Grant allows using one or few functions in a Higson system, for example, authority to read a list of decision tables, change decision tables, etc… designers form these kinds of privileges available to users from the Higson team. Nevertheless, nothing stay on your way to set new grants.

In order to see Grants, select Tools → Users in Main Toolbar.

Then, select Grants tab.

After you enter Grants you will see screen of all Grants:

No. Column/Action name Description
1. Code Full grant code/name. Grant code and Grant name are interchangeable. You can sort this column by left-clicking on the arrows visible next to the label.
2. Created on Date of creation of a grant. You can sort this column by left-clicking on the arrows visible next to the label.
3. Description Full grant description. You can sort this column by left-clicking on the arrows visible next to the label.
4. Actions List of quick access actions available for each grant. Currently only Delete grant (bin icon) action is available. To learn more about deleting grants, go here.
5. Add grant Allows creating new Grants. To learn more about adding Grants, go here.

You can switch between Grants, Roles and Users screens by left-clicking on the desired Tab.

Grants - Add grant

If you want to add a new grant, follow these steps:

  1. Choose Tools → Users in Main toolbar.

  2. Switch to Grants tab.

  3. Choose Add grant.

    a. Choosing Add grant opens Grant screen.

  4. In Description section you:

    a. need to enter unique grant code/name. Code/name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with „-’'.

    i. If you enter illegal characters in name field, then borders will be highlighted with red color, and you will not be able to save a role.

    b. need to provide grant Description.

  5. Choose Save changes.

    a. Grant with entered data is created.

    b. If you enter the same name as one of the Grants already created, then validation error will appear.

Grants - Delete grant

If you want to delete specific grant, follow these steps:

  1. Choose Tools Users in Main toolbar.

  2. Switch to Grants tab.

  3. Choose Delete grant (bin icon) action for Grant you wish to delete.

    a. After choosing Delete grant action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. Specific Grant is being deleted from the environment. This action is irreversible

Versions

Versions is a very useful option when the calculation mechanism in your product is changing through time. In Versions, you can create new Regions and Versions of Regions

In order to see Versions, select Versions in Main Toolbar.

After you enter Versions you will see screen of all Regions:

No. Name Description
1 Regions search Filter by any string provided by the user. All Regions matching the provided criteria are filtered.
2 Add a new Region Allows creating new Regions. To learn more about adding Regions, go here.
3 All Regions Displays every Region created.
4 Download Regions Downloads an XLSX file containing all Regions and Versions of Regions. To learn more about downloading Regions, go here.
5 Upload Regions Allows uploading Regions from an XLSX file. To learn more about uploading Regions, go here.
6 Tiles view Enables the view of Regions as tiles.
7 List view Enables the view of Regions as a list.

Region tile:

List view of Regions:

Versions - Add a new region

If you want to add a new region, follow these steps:

  1. Choose Versions in Main toolbar.

  2. Choose ADD A NEW REGION +

    a. Choosing ADD A NEW TYPE + opens Add new region screen.

  3. Provide unique Region name. Name can contain only characters from the collection: a-z; A-Z; 0-9; “-”; “_” and white-space characters.

  4. Choose Add.

    a. Region with data you provided is created.

    b. If you enter the same name as one of the Regions already created, then validation error will appear.

Versions - Download Regions

If you want to download Regions, follow these steps:

  1. Choose Versions in Main toolbar.

  2. Choose Download.

    a. Choosing Download downloads a XLSX file, that contains all Regions and Versions of Regions.

Versions - Upload Regions

If you want to upload Regions, follow these steps:

  1. Choose Versions in Main toolbar.

  2. Choose Upload.

    a. Choosing Upload brings up Upload regions screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than XLSX, then validation error will pop up.

    b. If there is something wrong with data in XLSX file, then validation error will appear.

  4. Choose Upload.

  5. When the progress bar reaches 100%, it means that regions were uploaded correctly.

    a. If a validation error occurs (see above), then an upload process is being aborted.

Region details screen

You can access Region details by left-clicking on the specific region tile in the screen of all Regions. You can also see Region details by changing from Tiles view to List view.

An important difference in the Versions screen is that Regions have no read-only mode. Another important difference is that changes made in Regions are instant, without session mechanism.

Data in Regions is editable all the time.

Tiles view
List view
No. Name Description
1 Active Indicates which Version is currently visible based on My View (hyperlink do MyView) settings. To learn more about My View, go here (hyperlink do MyView).
2 Default “Default” Version is set by Timeliness based on VALID TO and VALID FROM dates. Currently valid Version is labeled as “Default”.
3 Add to Allows adding Version to Timelines. User cannot add Version to Timelines twice in a row; in this case, the action will be greyed out. To learn more about adding a version to Timelines, go here.
4 Clone Allows cloning Version. To learn more about cloning a version, go here.
5 Delete Version Deletes a version of the region. If the action is greyed out, it means that the version is assigned to Timelines and cannot be deleted. To learn more about deleting a version, go here.
6 Delete Timelines Deletes Timelines; only the newest Timeline can be deleted. “Delete” action is greyed out for older Timelines. To learn more about deleting Timelines, go here.
7 Delete region Deletes a Region. To learn more about deleting regions, go here.

Region details - Add to Timelines

If you want to add a version to Timelines, follow these steps:

  1. Choose Versions.

  2. Left-click on a region you wish to add Timelines to.

    a. Left-clicking on region brings up Region details screen.

  3. Choose Add to Timelines action for desired Version.

    a. If action is greyed out, it means that this particular Version was added to the newest Timeline. You cannot add the same Version to Timelines twice in a row.

  4. Choose VALID FROM date in calendar.

  5. Choose Accept.

    a. New Timeline is created.

    b. If you choose a date older than the VALID FROM date of the currently newest Timeline, then a validation error will appear.

Region details - Clone version

If you want to clone a version, follow these steps:

  1. Choose Versions.

  2. Left-click on a region you wish to clone a version.

    a. Left-clicking on region brings up Region details screen.

  3. Choose Clone version action for desired Version.

    a. The New version is created as a clone.

  4. You can enter the description for created version.

Region details - Delete version

If you want to delete a version, follow these steps:

  1. Choose Versions.

  2. Left-click on a region you wish to clone a version.

    a. Left-clicking on region brings up Region details screen.

  3. Choose Delete version action for desired Version.

    a. After choosing Delete version action, confirmation pop up will appear.

  4. Choose Delete.

    a. Version is being deleted from Region.

    b. Bear in mind that deleting version will also permanently delete all attached elements (Decision Tables, Functions, Domain Configuration elements).

Region details - Delete Timelines

If you want to delete timelines, follow these steps:

  1. Choose Versions.

  2. Left-click on a region you wish to clone a version.

    a. Left-clicking on region brings up Region details screen.

  3. Choose Delete timeline action for the newest timeline.

    a. Bear in mind that only the newest timeline can be deleted. Delete action for older timelines is greyed out.

Region details - Delete Region

If you want to delete a region, follow these steps:

  1. Choose Versions.

  2. Left-click on a region you wish to delete.

    a. Left-clicking on region brings up Region details screen.

  3. Choose Delete region.

    a. After choosing Delete region action, confirmation pop up will appear.

  4. Choose Delete.

    a. The Region is being deleted from the environment.

    b. Bear in mind that deleting region will also permanently delete all attached elements (Decision Tables, Functions, Domain Configuration elements).

Functions

Functions enable you to write code snippets in regular programming language, which let you implement any logic you want. You can write functions where Decision Table matrix is not enough.

In order to see all functions, select Functions in Main Toolbar.

After you enter Functions you will see screen of all functions:

Each function is described by seven attributes:

No. Column name Description
1. Name Full function name/code. The function name and function code are interchangeable.
2. Type Type of programming language used in the function. Available types are: Groovy, Rhino, Python.
3. Tags List of all Tags assigned to the function. To learn more about assigning Tags go here.
4. Region Code of Region the function is assigned to. To learn more about assigning Regions go here.
5. Details To nie mam pojęcia co to, chyba ta kolumna Details ma wylecieć.
6. Last change The last modification date of the function.
7. Actions List of quick access actions. Currently only Remove action (bin icon) is available here. Remove action deletes desired function.

On this screen, you can apply Filters to search for specific function or to narrow down the number of displayed functions. You can also perform actions on one or multiple functions.

You can see All Actions available for the functions below:

No. Action Description
1. Checkboxes Select the top checkbox to select all functions in the view, or select individual checkboxes to group functions for actions 5a, 5b, 5c, 5f, 5g, 5h, 5i.
2. + Add function Opens a step-by-step function wizard. Allows to create new functions. To learn more about adding functions go here.
3. Upload Allows to import functions from a ZIP file. To learn more about uploading functions go here.
4. Hide/Show filters Hides or reveals Filters bar accordingly. If Filter bar is visible, then action Hide filters is available. If Filter bar is hidden, then action Show filters is available.
- is visible, then action Hide filters is available.
- is hidden, then action Show filters is available.
5. More Drop-down list that contains actions 5a-5i. Bear in mind that actions 5a, 5b, 5c, 5f, 5g, 5h, 5i are available only if at least one function is selected (at least one checkbox is checked). Otherwise, the mentioned actions will be greyed out (see picture below the table).
5a. Mass export to XLSx Downloads a ZIP file that contains XLSX file and files with functions’ body. To learn more about mass export go here
5b. Extract codes Downloads a XLSX file that contains functions’ extract. To learn more about extracting codes go here.
5c. Download codes Download a TXT file with functions’ names/codes To learn more about extracting codes go here.
5d. Select from file Allows to upload a TXT file with function codes, after uploading, all functions present in file will be selected. To learn more about selecting from file go here
5e. Compare with extract Allows to upload an XLSX file with functions’ extract. Makes comparison between the provided file and the environment. To learn more about comparing with extract go here
5f. Add region Adds regions to all selected functions. To learn more about adding regions go here
5g. Remove region Removes regions from all selected functions. To learn more about removing regions go here
5h. Manage tags Allows to add/remove tags to/from selected functions. To learn more about adding/removing tags go here
5i. Remove Deletes all selected functions. To learn more about removing functions go here

More actions drop-down menu, when no function is selected.

You can see all Filters available for the functions below:

No. Filter name Description
1. Search text field Filter by any string provided by the user.
2. Type Filter by used programming language: Groovy, Rhino, Python.
3. Tags Filter by assigned tags. Only tags assigned to at least one function are visible for selection.
4. Region Filter by assigned regions. Only regions assigned to at least one function are visible for selection.
5. Date range Filter by last change date in the format DD/MM/YYYY-DD/MM/YYYY.

Functions - Add function

If you want to add a new function, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Choose + Add function in All actions bar.

    a. Choosing + Add function opens a step-by-step Function wizard.

    No. Field/Bottom code Description
    1a Name Allows to add function name.
    1b Cancel Interrupts the process of creating a new function. Returns the user to the functions list view.
    1c Next Proceeds to the next step of the function wizard.
  3. In step 1. Name, you need to provide unique Function code/name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

    a. If you change your mind and don’t want to create a new function, you can choose Cancel in step 1. Name.

  4. Click Next.

    a. If you enter illegal characters, then validation error will make field frame red.

    b. If another function already uses the name you provided, then pop-up dialog will appear. You can either close the pop-up by clicking Cancel or you can click View existing function, that will redirect you to the appropriate function and close the Function wizard.

  5. In step 2. Definition you may add description, assign a region and tags, but this data is not necessary to save a function.

    No. Field/Bottom code Description
    2a Description Add or modify element description. Here you can add any additional detailed information about the new function.
    2b Change Modify tags attached to the function.
    2c Previous Go back to the first step of the function wizard.
    2d Save function Completes the process of creating the new function.

    a. If you choose Previous you will go back to step 1. Name

  6. Choose Save function.

    a. Function with data you provided is created. You will be redirected to Function’s details screen.

Functions - Upload

If you want to upload functions from ZIP file, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Choose Upload in All actions bar.

    a. Choosing Upload brings up the Upload screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. If you choose a file with extension other than ZIP, then validation error will pop up to learn how the correct file looks like go here.

    b. If there is some problem with the data in the ZIP file you provided, then validation error will pop up.

  4. If the file loads correctly, it may be uploaded to the environment. File will load correctly if there is no file format problem.

    a. If validation error occurs (see above), then no function will be uploaded.

    No. Field/Bottom code Description
    1 Close Aborts the upload process.
    2 Delete Removes the loaded file. When clicked, you will need to provide the file to load for the upload process to be completed.
    3 Upload Uploads the loaded file to the system. The report of the upload will show.
  5. Click Upload

  6. When Upload is completed, the progress bar at 100% shows and the report is visible below.

    It allows you to check all the imported elements and if any problems during upload occurred.

Functions - Mass export to XLSx

If you want to download one or more functions, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Select one or more function.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions

  3. From drop-down menu More actions choose Mass export to XLSx

    a. If action Mass export to XLSx is greyed out, it means that no function has been selected.

    b. Choosing Mass export to XLSx downloads a ZIP file that contains files with functions’ body (one file per function) and XLSX file with functions’ details.

Functions - Extract codes

If you want to extract one or more functions, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Select one or more function.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions

  3. From drop-down menu More actions choose Extract codes

    a. If action Extract codes is greyed out, it means that no function has been selected.

    b. Selecting Extract codes downloads a XLSX file that contains Code, SHA and Region columns

Functions - Download codes

If you want to download one or more function codes, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Select one or more function.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions

  3. From drop-down menu More actions choose Download codes

    a. If action Download codes is greyed out, it means that no function has been selected.

    b. Selecting Download codes downloads a TXT file that contains functions’ codes (as in you can see below, one function code per one row)

Functions - Select from file

If you want to select one or more functions from the file, follow these steps:

  1. Choose Functions in Main toolbar.

  2. From drop-down menu More actions choose Select from file

    a. Choosing Select from file brings up the Select from file screen

    No. Field/Bottom code Description
    1 Upload a file Drag & drop a txt file from your computer or select a txt file through File Explorer.
    2 Upload Uploads the loaded file. When clicked, the file gets uploaded and all elements provided in it are compared with elements on the environment.
    3 Select Selects (checks checkboxes) for elements on the list from the provided file.
  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. Correct TXT file should look like this:

    b. If you choose a file with extension other than TXT, then validation error will pop up

  4. When the progress bar reaches 100%, you will be informed which functions will be selected.

    a. Functions present in Selected elements table will be selected in step 5. These functions exist both in the TXT file and on the environment.

    b. Functions present in Missing from table will not be selected in step 5. These functions exist only in TXT file therefore, they cannot be selected on the environment.

  5. Choose Select.

    a. All functions that were present in Selected elements table get selected (checkboxes associated with these functions are checked).

Functions - Compare with extract

Makes a comparison between file and the environment, gives information which element are the same, which changed and which are only in file or only in the environment.

  1. Choose Functions in Main toolbar.

  2. From drop-down menu More actions choose Compare with extract.

    a. Choosing Compare with extract brings up the Compare with extract screen.

  3. Drag&drop desired file or Click to upload a file and choose file in File explorer.

    a. Correct XLS/XLSX file should look like this:

    b. If you choose a file with extension other than XLS/XLSX, then validation error will pop up

  4. When the progress bar reaches 100%, you will be informed about the status of all functions present in the environment and the extract file you provided.

  5. In Select section (visible below table with functions’ status) choose which functions will be selected

    a. You can select multiple options

    b. Matching - functions that are equal between the environment and the extract file will be selected.

    c. Different region - functions that are equal but with different regions between the environment and the extract file will be selected.

    d. Different name - functions that are equal but with different name between the environment and the extract file will be selected.

    e. Missing from extract - functions that are present in the environment but absent from extract file will be selected.

  6. Choose Select buton.

    a. If Select button is greyed out, it means that no checkboxes were selected in step 5.

    b. All functions that match the criteria provided in step 5 are selected.

Functions - Add region

If you want to add a region to one or more functions, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Select one or more functions without a Region.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions.

  3. From drop-down menu More actions choose Add region.

    a. If action Add region is greyed out, it means that no function has been selected.

    b. Choosing Add region brings up the Manage versioning screen.

  4. Select Region and one or more Version.

  5. Choose Change.

    a. Region is being assigned to all functions selected in Step 2.

    b. If at least one function you selected in Step 2 had assigned Region, then validation error appears and assigning Region process will be aborted.

Functions - Remove region

If you want to remove region from one or more functions, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Select one or more functions with a Region.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions.

  3. From drop-down menu More actions choose Remove region.

    a. If action Remove region is greyed out, it means that no function has been selected.

    b. After choosing Remove region action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. Regions are being removed from all selected functions.

Functions - Manage tags

If you want to manage tags for one or more functions, follow these steps:

  1. Select the Functions on the Main toolbar.

  2. Select one or more functions.

  3. From the More Actions drop-down menu, select Manage Tags.

  4. Select the tags you are interested in and click Save.

Functions - Remove

If you want to delete one or more functions, follow the steps below:

  1. Choose Functions in Main toolbar.

  2. Select one or more functions.

    a. Select the top checkbox to select all functions in the view, or select individual checkboxes to select one or multiple functions.

  3. From the drop-down menu More actions choose Remove

    a. If action Remove is greyed out, it means that no function has been selected.

    b. After choosing Remove action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. All functions are deleted from the environment.

Function details screen

You can access Function details by left-clicking on the specific function in the List of all functions. * Function details* screen contains all information about the function, its Description, assigned Region/Tags, function body and function arguments.

Firstly, function basic info:

No. Field/Bottom code Description
1 Add to favorites Adds the element to favorites.
2 Function code/name Current function name/code.
3 Copy name Copies the function name to clipboard.
4 Language Groovy, Rhino, or Python. Defines the programming language in which the function is validated and performed.
5 Region Carries information about region and version attached to the function.

You can see Available actions for the function below:

No. Action Description
1 Edit Enables function edit mode. To learn more about editing function go here.
2 Duplicate Allows to duplicate function. Duplicated function has all data the same as the original function.
3 Download function Downloads a ZIP file that contains XLSX file and file with function body.
4 More actions Drop-down list that contains actions 4a-4e.
4a Show history Opens a new screen with a table of all modifications made on the function. To learn more about function history go here.
4b Rename Allows changing function code/name. To learn more about renaming function go here.
4c Detach/Attach Allows managing region and versions attached to the function.
4d Find usages Opens a new screen with a table of all elements that use this function. You can apply filters to narrow down the results. To learn more about finding usages go here.
4e Remove Deletes function. To learn more about removing function go here.

The main part of the function view includes the most important information about the function that makes it work:

No. Action Description
1. Description Contains the Description of the function if such was added.
2. Tags Contains the tags attached to function.
3. Argument name Argument name defined separately for each argument. Must e unique within the function.
4. Argument type Argument type selected from the available types list, defined separately for each argument.
5. Argument class Argument class name defined separately for each argument.

Function details - Edit

If you want to edit data in a specific function, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you wish to edit.

    a. Left-clicking on function opens Function details* screen.

  3. Choose Edit in Available actions.

    a. Highlighted borders indicate that edit mode is active.

  4. Edit any data you need.

    No. Action Description
    1 Description Contains the Description of the function if such was added.
    2 Change Allows to manage tags.
    3 Add argument Adds a new argument for which name, type, and class name will have to be provided.
    4 Function body Here you can write code to create your algorithm. You can define variables and use arguments defined in the Argument section.
    5 Cancel Rejects all changes made in the edit mode.
    6 Save changes Saves all changes made in the edit mode.

    a. Bear in mind that function’s name can only be changed with Rename action.

  5. Choose Save changes to save all changes made in the function.

    a. Cancel reverts all changes made in the function.

Function details - Duplicate

If you want to duplicate specific function, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you wish to duplicate.

    a. Left-clicking on function opens Function details* screen.

  3. Choose Duplicate in Available actions.

    a. Choosing Duplicate brings up the Duplicate function screen.

    No. Action Description
    1 Name Provide the name for the duplicated function.
    2 Cancel Abort the process of duplicating the function.
    3 Save changes Save the new, duplicated, element.
    4 Close Abort the process of duplicating the function.
  4. Enter unique function name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

  5. Choose Save changes.

    a. If you enter illegal characters, then validation error will make the field frame red.

    b. If another function already uses the name you provided, then pop-up dialog will appear. You can either close the pop-up by clicking Cancel or you can click View existing function, that will redirect you to the appropriate function.

  6. Choose Save changes.

    a. The Function will be duplicated with the name provided in step 4. You will be redirected to duplicated Function’s details screen.

Function details – Show history

If you want to check all modifications made on function, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you want to check.

    a. Left-clicking on function opens Function details* screen.

  3. From drop-down menu More actions choose Show history.

    a. Choosing Show history brings up the Function history screen.

    No. Column name Description
    1. Operation Type of operation made on function.
    2. Author User’s login that made an operation.
    3. Modification Date Date of the published session that made an operation.
    4. Region Region and version assigned to function at the time of modification.
    5. Actions View redirects to archived version of Function. In this screen you can choose Restore to restore that version of Function.

Function details - Rename

If you want to rename a function, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you wish to duplicate.

    a. Left-clicking on function opens Function details screen.

  3. From drop-down menu More actions choose Rename.

    a. The Highlighted border around the function name indicates that it is editable.

  4. Enter unique function name. Name can contain only characters from collection a-z; 0-9; “.”; “-”; “_” and it can’t start with “-”.

  5. Choose Save name.

    a. If you enter illegal characters, then validation error will appear.

    b. If another function already uses the name you provided, then pop-up dialog will appear. You can either close the pop-up by clicking Cancel or you can click View existing function, that will redirect you to the appropriate function.

Function details - Find usages

If you want to check where the function is used, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you want to check.

    a. Left-clicking on function opens Function details* screen.

  3. From drop-down menu More actions choose Find usages.

    a. Choosing Find usages brings up the Find usages screen.

    No. Column name Description
    1. Element type Type of element that uses this function.
    2. Number of applied filters Informs the user how many filters of specific filters type are applied.
    3. Unselect all filters inside Unselects all filters of specific type.
    4. Show all Shows all available filters for the selected type.

    b. You can apply filters to narrow down the displayed results. All available filters are visible in the picture below.

    When filters for search are set, you will see the list of results:

    No. Column name Description
    1. Element type Type of element that uses this function.
    2. Element name Name of the element that uses this function.
    3. Field Value of the element that uses this function. This column is filled only for Attribute value element, for other elements this column is empty.
    4. Value Informs the user in what value the searched element was used.

Function details - Remove

If you want to delete specific function from Function details level, follow these steps:

  1. Choose Functions in Main toolbar.

  2. Left-click on the function you wish to remove.

    a. Left-clicking on function opens Function details* screen.

  3. From drop-down menu More actions choose Remove.

    a. After choosing Remove action, confirmation pop-up will appear.

  4. Choose Confirm.

    a. The Function is deleted from the environment.

Technical Documentation

Bootstrap

Studio

Higson Studio is a Java application and can be run at JVM machine equipped with:

  • at least Java 17 JRE,
  • 4 GB of RAM,
  • 1 CPU,
  • Linux, Windows or macOS machine.

Docker

Higson Studio distribution does not contain JDBC drivers other than H2 database. Every image contains description how to configure JDBC driver.

Full docker repository is available here.

Runtime

Prerequisites:

  • Java 17
  • Maven 3.x
  • Spring Framework
  • Higson Studio

We will show how to configure Higson Engine using Spring Boot configuration

Maven configuration

Apart from standard spring boot dependencies, you need to include higson-runtime dependency, available in Maven Central.

1
2
3
4
5
<dependency>
    <groupId>io.higson</groupId>
    <artifactId>higson-runtime</artifactId>
    <version>${higson-runtime.version}</version>
</dependency>

Another needed dependency is the JDBC driver to the database of choice, e.g., h2, oracle, mssql, postgresql and database connection pool managing library:

1
2
3
4
5
6
7
<dependencies>
  <dependency>
     <groupId>com.h2database</groupId>
     <artifactId>h2</artifactId>
     <version>${h2-database.version}</version>
 </dependency>
</dependencies>

Properties

Add Higson Runtime data source properties to application.properties file.

1
2
3
higson.database.url=<jdbc\_url\to\database>
higson.database.username=<username>
higson.database.password=<password>

Properties are available here

Spring configuration

Add required beans to your java class annotated with @Configuration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  @Autowired
  private Environment env;
  
  private static final Logger log = LoggerFactory.getLogger(TestConfiguration.class);
  
  @Bean
  public DialectRegistry getDialectRegistry() {
      DialectRegistry registry = new DialectRegistry();
      registry.setDialect(env.getProperty("higson.database.dialect"));
      return registry;
  }
  
  @Bean
  public DialectTemplate getDialectTemplate(DialectRegistry dialectRegistry) {
          return dialectRegistry.create();
  }
  
  @Bean(destroyMethod = "close")
  public DataSource getDataSource(DialectTemplate dialectTemplate) {
      BasicDataSource dataSource = new BasicDataSource();
      dataSource.setUsername(env.getProperty("higson.database.username"));
      dataSource.setPassword(env.getProperty("higson.database.password"));
      dataSource.setUrl(env.getProperty("higson.database.url"));
      dataSource.setInitialSize(4);
      dataSource.setDriverClassName(dialectTemplate.getJdbcDriverClassName());
      return dataSource;
  }
  
  @Bean(destroyMethod = "destroy")
  public HigsonEngineFactory getHigsonEngineFactory(DataSource dataSource) {
      log.info("Engine factory begin creation...");
      HigsonEngineFactory higsonEngineFactory = new HigsonEngineFactory();
      higsonEngineFactory.setDataSource(dataSource);
      return higsonEngineFactory;
  }
  
  @Bean
  public HigsonEngine getHigsonEngine(HigsonEngineFactory higsonEngineFactory) {
      log.info("Engine begin creation...");
      return higsonEngineFactory.create();
  }

The application is ready to start. After successfully starting the application, you can see similar log output:

Runtime Rest Spring Boot Starter

Prerequisites

  • Java 11
  • Maven 3.x
  • Spring Boot

Maven configuration

Apart from standard spring boot dependencies, you need to include higson-runtime-spring-boot-starter dependency, available in Maven Central. Add higson-runtime-spring-boot-starter dependency to pom.xml file:

1
2
3
4
5
<dependency>
 <groupId>io.higson</groupId>
 <artifactId>higson-runtime-spring-boot-starter</artifactId>
 <version>${higson-runtime.version}</version>
</dependency>

Another needed dependency is the JDBC driver to the database of choice, e.g., h2, oracle, mssql, postgresql:

1
2
3
4
5
<dependency>
 <groupId>com.h2database</groupId>
 <artifactId>h2</artifactId>
 <version>${h2-database.version}</version>
</dependency>

Properties

With the above setup, all the configuration that is needed is application.properties file with database properties:

1
2
3
4
5
higson:
 database:
  username: <username>
  password: <password>
  url: <jdbc_url>

If required properties are not available, higson-runtime-spring-boot-starter will return an adequate message.

To configure external sources, you have to set comma separated list of external sources names and connection properties for each of them. You can do it by using the properties below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
higson:
 runtime:
  external-datasource:
   sql:
    postgres:
     url: <postgres_jdbc_url>
     password: <postgres_password>
     username: <postgres_username>
    h2:
     url: <h2_jdbc_url>
     username: <h2_username>
     password: <h2_password>
    names: postgres,h2

Using auto-configured HigsonEngine

After successfully configuring properties while starting the application, spring will create HigsonEngine bean available in the spring application context, then which can be injected anywhere:

1
2
3
4
5
@Component
public class HigsonClient {
 @Autowired
 private HigsonEngine engine;
}

Overriding default configuration

To override default auto-configuration, you need to define HigsonEngine bean in the @Configuration class:

1
2
3
4
5
6
7
8
@Configuration
class CustomHigsonConfiguration {
 @Bean
 public HigsonEngine higsonEngine() {
  var factory = new HigsonEngineFactory();
  return factory.create();
 }
}

Existing auto-configured DataSource and HigsonRuntimeProperties can be used simply by injecting them:

1
2
3
4
public class HigsonEngine(
        HigsonRuntimeProperties properties,
        @Qualifier("higsonDataSource") DataSource dataSource
) {}

Disabling Higson

If you want to disable higson temporarily for some reason, you can do it with property higson.runtime.enabled set to false.

1
2
3
higson:
 runtime:
  enabled: false

Runtime Rest

Higson Runtime REST is a web application that provides REST API for parameter/function/domain access. It is a REST implementation of Java’s Higson Runtime jar. It is available in two forms:

Environment

Higson Runtime REST is a Java application and can run with any Java 8 or higher on Windows, MacOS X and Linux/Unix.

CLI

To run Runtime-Rest from cli you must pass four properties:

  • loader.path - path to jdbc driver
  • higson.database.url
  • higson.database.username
  • higson.database.password

Download latest version of higson runtime rest and database driver (postgresql for example)

1
2
3
4
5
6
7
wget  https://repo1.maven.org/maven2/pl/decerto/higson-runtime-rest/4.0.0/higson-runtime-rest-4.0.0.jar -O higson-runtime-rest.jar
wget  https://repo1.maven.org/maven2/org/postgresql/postgresql-42.6.0/postgresql-42.6.0.jar -O postgresql.jar

java -Dloader.path=./postgresql.jar -jar ./higson-runtime-rest.jar \
        -Dhigson.database.url=”jdbc:postgresql://your_postgresql_database:5432/higson?currentSchema=public” \
        -Dhigson.database.username=”admin” \
        -Dhigson.database.password=”admin”

Docker

To run Higson Runtime REST as a docker image, there is need to build a separate docker image based on decerto/higson-runtime-rest image, add your database driver jar and run Higson Runtime REST jar with additional path.

Example:

1
2
3
4
FROM decerto/higson-runtime-rest:4.0.0
ARG DRIVER=postgresql.jar
COPY ${DRIVER} driver.jar
ENTRYPOINT [`java`,`-Dloader.path=driver.jar`, `-jar`,`/runtime-rest.jar`]

Additionally, you need to pass 3 properties:

  • higson.database.url
  • higson.database.username
  • higson.database.password

An invocation example:

1
2
3
4
docker run -p 8080:8081 -e higson.database.url=jdbc:postgresql://your_postgresql_database:5432/higson?currentSchema=public
-e higson.database.username=admin
-e higson.database.pasword=password
-t my-container

Using Higson Runtime REST

This short tutorial will guide you through the process of running Higson Runtime REST as a docker image and invoking parameter/function/domain element.

Prerequisites

In order to run examples from this article you will need:

Setting up a docker images

The tutorial will be based on our motor insurance. It consists of the insurance web application, Higson Studio, and Higson Runtime REST modules. There is a docker-compose.yml file that makes the whole application easy to run. Just download a project from GitHub, open terminal in that directory, and run the following command:

1
2
3
4
5
docker-compose up

//or depending which docker version is installed

docker compose up

If you look closely inside the docker-compose.yml file, you will see that Higson Runtime REST docker image needs three additional properties to be passed to run properly:

  • higson.database.url : JDBC url to Higson’s database
  • higson.database.username : Higson’s database username
  • higson.database.password : Higson’s database password

If you want to connect to other database types such as Oracle, Postgres, MsSQL or MySQL, then you must build your own docker image and provide your database driver. Here’s a Docker file example that copies custom database driver and runs Runtime REST application:

1
2
3
4
FROM decerto/higson-runtime-rest:latest
ARG DRIVER\_JAR=dbDriver.jar
COPY ${DRIVER\_JAR} driver.jar
ENTRYPOINT\["java","-Dloader.path=driver.jar","-jar","/runtime-rest.jar"\]
  • Demo app should be available at localhost:48080/demo
  • Higson Studio should be available at localhost:38080/higson/app
  • Higson Runtime REST should be available at localhost:8081

To access higson services use followed credentials: User: admin Password: admin

Getting parameter value

We will be using parameter examples from this article. Let’s get the value of a demo.motor.coverage.position parameter for the “BI” coverage code. Here’s the request we’re going to use:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{  
 "ctx": {  
  "properties": [  
    {    
     "key":"coverage.code",    
     "value":"BI"  
    }  
   ]  
 },  
 "elements": [  
  {  
   "code":"demo.motor.coverage.position",  
   "type":"PARAMETER"  
  }  
 ]
}

It consists of 2 main parts: ctx and elements. The former represents the input values we want to pass to Higson. We can pass there simple as well as complex objects. The latter is a list of Higson elements to invoke.

When we send this request to the localhost:8081/api/execution/invoke url, we should receive the following response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[  
  {  
   "element": {  
    "code":"demo.motor.coverage.position",  
    "type":"PARAMETER",  
    "attributeCode":null,  
    "profileCode":null  
    },  
   "resultValue": [  
    {    
     "fields": [      
      {       
       "key": "position",       
       "value": 1      
      }    
     ]  
    }  
   ]  
  }
]

We receive a list of executed Higson elements with corresponding values.

Let’s see how the response will look like if more than one row will be returned from the parameter. In this example, we are going to use the demo.motor.dict.vehicle.available Makes parameter. Here’s the request:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{  
 "ctx": {  
  "properties": [  
   {    
    "key":"quote.vehicle.productionYear",    
    "value":1972  
   },
   {    
    "key":"coverage.code",    
    "value": "BI"  
   }   
  ]  
 },  
 "elements": [  
  {  
   "code":"demo.motor.dict.vehicle.availableMakes",  
   "type":"PARAMETER"  
  },   
  {  
   "code": "demo.motor.coverage.position",  
   "type":"PARAMETER"  
  }  
 ]
}

Besides a new parameter code and context property, you can see how to invoke more than one Higson element in a single JSON request. Let’s see the response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[  
 {   
  "element": {   
   "code": "demo.motor.coverage.position",   
   "type": "PARAMETER",  
   "attributeCode": null,   
   "profileCode": null  
  },   
  "resultValue": [  
   {   
    "fields": [      
     {       
      "key": "position",       
      "value": 1      
     }    
    ]  
   }  
  ]  
 },{   
  "element": {   
  "code": "demo.motor.dict.vehicle.availableMakes",   
  "type": "PARAMETER",   
  "attributeCode": null,   
  "profileCode": null  
 },   
 "resultValue": [  
  {   
   "fields": [      
    {       
     "key": "make",       
     "value": "STAR"      
    },{       
     "key": "make_id",       
     "value": 722      
    }    
   ]  
  },{   
   "fields": [      
    {       
     "key": "make",       
     "value": "TRABANT"      
    },{       
     "key": "make_id",       
     "value": 221      
    }    
   ]  
  },{   
   "fields": [      
    {       
     "key": "make",       
     "value": "UAZ"      
    },{       
     "key": "make_id",       
     "value": 315      
    }    
   ]  
  },{   
   "fields": [      
    {       
     "key": "make",       
     "value": "WARTBURG"      
    },{       
     "key": "make_id",       
     "value": 230      
    }    
   ]  
  }  
 ]  
]

As we see, each element has its own JSON section in returned array. What’s more, each row in the parameter’s matrix corresponds to one complex element in the resultValue array.

Calling function

Let’s get the computed value of the demo.insurance.calc.premium function. Here’s the request we’re going to use:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{  
 "ctx": {  
  "properties": [    
   {      
    "key":"policy.premiumPerDay",      
    "value":200    
   },{      
    "key":"policy.startDate",      
    "value": "2017-01-01"    
   },{      
    "key":"policy.endDate",      
    "value":"2017-01-03"    
   }  
  ]  
 },  
 "elements": [  
  {    
   "code":"demo.insurance.calcpremium",    
   "type":"FUNCTION"  
  }  
 ]
}

It’s basically the same request as the one used in the parameter section. However, we pass here three context key-value pairs instead of one. Here’s the response we should get by calling the localhost:8081/api/execution/invoke endpoint:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[  
 {  
  "element": {    
    "code":"demo.insurance.calcpremium",    
    "type":"FUNCTION",    
    "attributeCode":null,    
    "profileCode":null  
  },  
  "resultValue": 600.0  
 }
]

Again, the same response format as in the parameter’s.

Accessing domain attributes

Last but not least, let’s see how to access domain attributes through invoke API. We’ll be using examples from this article. Let’s see how to evaluate a position attribute of a coverage BI domain element:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{  
 "ctx": {  
  "properties": [  
   {    
    "key":"coverage.code",   
    "value":"COLL"  
   }  
  ]  
 },  
 "elements": [  
  {  
   "profileCode":"DEMO",  
   "code":"/PLANS[FULL]/COVERAGES[BI]/",  
   "attributeCode":"POSITION",  
   "type":"DOMAIN_OBJECT"  
  }  
 ]
}

The main difference between domain element and parameter/function is the presence of 2 additional attributes: profileCode and attributeCode, which names are self-describing. Let’s look at the response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[  
 {  
  "element": {  
   "code":"/PLANS[FULL]/COVERAGES[BI]/",  
   "type":"DOMAIN_OBJECT",  
   "attributeCode":"POSITION",  
   "profileCode":"DEMO"  
  },  
  "resultValue": [  
   {    
    "fields": [      
     {       
      "key": "position",       
      "value": 8      
     }    
    ]  
   }  
  ]  
 }
]

As we see, the response format is the same as in the parameter/function section.

If you want to learn more or discover other available endpoints, there is a Runtime REST swagger online documentation available at: http://localhost:8081/swagger-ui.html.

Properties

Properties in Higson

Higson gives user a possibility to configure and overwrite internal application properties. They are stored in dedicated file, named application.yml . File should be placed in container or may be pass using environment properties

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  studio-api:
    image: decerto/higson:4.0.0
    container_name: higson-studio-api
    ports:
      - "48282:8282"
    volumes:
      - ./application.yml:/application.yml  # << here properties are passed from host in yaml file
    environment: 
      - "HIGSON_DATABASE_URL=jdbc:postgresql..." # << this section let us define environment properties which has precedence over the yaml file.
      - "HIGSON_DATABASE_USERNAME=higson"
      - "HIGSON_DATABASE_PASSWORD=higson"
      - "HIGSON_DATABASE_DIALECT=postgresql" 

Configurable properties

Property Description Default value
Database
higson.database.dialect Database dialect to use. Predefined dialects available in Higson: oracle,hsqldb, h2, mssql2012, postgresql, mysql oracle
higson.database.hbm2ddl-mode proxy for hibernate property hibernate.hbm2ddl.auto validate
higson.database.autoddl-action Action to be taken during Higson Studio startup with respect to database schema update:check - verify whether schema is correctupdate - chcek database schema and update, if neededskip - do nothing update
higson.database.url JDBC connection url
higson.database.username Username that Higson will use to connect to database defined in mpp.database.url
higson.database.password Password that Higson will use to connect to database defined in mpp.database.url
higson.database.schema Database schema wherein Higson tables exist
Environment
higson.studio.instance-name Id identifying specific Higson Studio Instance. It is visible in Higson Studio below menu toolbar 1.5.0
higson.studio.url Higson Studio url used in few places, for example to create url for authentication token reset, CAS authentication etc. http://localhost:8080/higson/app
higson.studio.ui.header-color CSS style (e.g. rgb(27, 140, 204)) defining Studio header color. If not set, default color is used
higson.studio.ui.text-color CSS color (e.g. #7f8c8d) used on text existing in start pages.
higson.studio.ui.chart-colors Collection of rgb colors separated by semicolon used in Higson Studio Simulation View to differentiate datasets 190,210,250;110,150,240;20,80,220; 170,230,250;70,200,240;15,150,190; 190,250,205;60,240,110;10,150,50
higson.studio.region.updater.task-cron CRON expression used to schedule job updating system region versions in Higson Studio 0 1 0 * * *
higson.studio.ui.show-stacktrace Flag determining whether full stacktrace should be shown when GUI error happened false
higson.studio.session.require-message Flag determining whether session message is required when publishing session false
Security
higson.security.password-encoder.name Name of using password encoder bcrypt
higson.security.password-encoder.complexity Password encoder complexity 5
higson.security.jwt.authentication-server Determines if studio server works as authentication provider true
higson.security.jwt.secret-key Secret to sign and decode JWT token (up to 256-bytes chars). To communicate with UI and Runtime Rest client.
higson.security.jwt.algorithm Determines JWT token sign algorithm (only HMAC256 supported) HMAC256
higson.security.jwt.access-token-lifetime.value Access token lifetime value 5
higson.security.jwt.access-token-lifetime.unit Access token lifetime unit Minutes
higson.security.jwt.refresh-token-lifetime.value Refresh token lifetime value 7
higson.security.jwt.refresh-token-lifetime.unit Refresh token lifetime unit Minutes
higson.security.jwt.persist-refresh-token Should persist refresh token to database (session idempotent) true
Features
higson.studio.function.support.rhino.enabled Should use Rhino as additional function’s language false
higson.studio.mail.host Mailer server host. If host and port are not set - mailer is not loaded ""
higson.studio.mail.port Mailer server port. If host and port are not set - mailer is not loaded ""
higson.studio.mail.username Mailer server username ""
higson.studio.mail.password Mailer server username’s password ""
higson.studio.mail.from Mailer from metadata ""
higson.studio.global-search.history-limit limit of history searches to keep in Higson Studio memory 60
higson.studio.external-environments.codes Name for the connected environment, to SEND snapshots and Superpacks to prod
higson.studio.external-environments.%s.url Url to the connected environment API
higson.studio.external-environments.%s.username Username to data source. %s is env code from property above. admin
higson.studio.external-environments.%s.password Password to data source. %s is env code from property above. admin
higson.studio.snapshot.param.matrix.writer.order-by-all-level Should sort by all levels during export parameter to file. Available: true/false true

RUNTIME

Available for runtime or runtime-rest apps

Property name Description Default Value
Database
higson.database.dialect Database dialect to use. Available values: oracle, hsqldb, h2, mssql2012, postgresql, mysql oracle
higson.database.url JDBC connection url
higson.database.username Username that Higson will use to connect to database defined in mpp.database.url
higson.database.password Password that Higson will use to connect to database defined in mpp.database.url
higson.database.schema Database schema wherein Higson tables exist
Environement
higson.runtime-rest.url URL of Higson Runtime Rest
Authentication
higson.runtime-rest.security.type Defines security type for runtime rest. Possible values: jwt, active-directory. When not set basic authentication is enabled
higson.security.jwt.secret-key Secret key to decrypt runtime rest token
higson.security.active-directory.domain Active Directory main root
higson.security.active-directory.url Active Directory server url
higson.security.active-directory.root-dn AD root domain
Other
higson.runtime.function.validate-arguments flag determining whether function arguments data types should be validated before execution false
higson.runtime.normalization.throw-on-exception flag determining whether an exception should be thrown when matrix value can’t be normalized false
higson.runtime.external-datasource.sql.names Names of data sources list.
higson.runtime.external-datasource.sql.%s.url Url to data source. %s is name of datasource from property above.
higson.runtime.external-datasource.sql.%s.username Username to data source. %s is name of datasource from property above.
higson.runtime.external-datasource.sql.%s.password Password to data source. %s is name of datasource from property above.
higson.runtime.parameter.value-never-null Flag responsible for managing global support of nullable parameter’s results in Higson Engine. If true, parameters will return instance of pl.decerto.higson.runtime.core.EmptyParamValue when no match found. If set to false, parameters return null. true
higson.runtime.watchers.enabled Flag determining whether runtime watchers should start automatically true

Properties names since version 4.x

COMMON

Version 2.3 Version 4.x
hyperon.database.url higson.database.url
hyperon.database.username higson.database.username
hyperon.database.password higson.database.password
hyperon.database.dialect higson.database.dialect
hyperon.security.basic.bcrypt.complexity higson.security.basic.bcrypt.complexity
hyperon.security.jwt.secret-key higson.security.jwt.secret-key
hyperon.database.hbm2ddl-mode higson.database.hbm2ddl-mode
hyperon.database.autoddl-action higson.database.autoddl-action
hyperon.database.schema higson.database.schema
hyperon.build.version higson.build.version
hyperon.build.number higson.build.number

HIGSON STUDIO:

Version 2.3 Version 4.x default value
hyperon.studio.url higson.studio.url
hyperon.studio.instance-name higson.studio.instance-name
hyperon.studio.ui.header-color higson.studio.ui.header-color
hyperon.studio.ui.text-color higson.studio.ui.text-color
hyperon.studio.ui.chart-colors higson.studio.ui.chart-colors
hyperon.studio.security.type higson.studio.security.type
hyperon.studio.security.cas.server-url higson.studio.security.cas.server-url
hyperon.studio.security.cas.login-url higson.studio.security.cas.login-url
hyperon.studio.security.cas.logout-url higson.studio.security.cas.logout-url
hyperon.studio.security.cas.logged-out-url higson.studio.security.cas.logged-out-url
hyperon.studio.security.saml.base-url higson.studio.security.saml.base-url
hyperon.studio.security.saml.entity-id higson.studio.security.saml.entity-id
hyperon.studio.security.saml.idp-metadata-file-path higson.studio.security.saml.idp-metadata-file-path
hyperon.studio.security.saml.response-skew higson.studio.security.saml.response-skew
hyperon.studio.security.saml.key-store.path higson.studio.security.saml.key-store.path
hyperon.studio.security.saml.key-store.pass higson.studio.security.saml.key-store.pass
hyperon.studio.security.saml.key-store.alias higson.studio.security.saml.key-store.alias
hyperon.studio.security.saml.key-store.key-pass higson.studio.security.saml.key-store.key-pass
hyperon.studio.security.saml.roles-origin higson.studio.security.saml.roles-origin
hyperon.studio.security.basic.password-encoder higson.studio.security.basic.password-encoder
hyperon.security.active-directory.domain higson.security.active-directory.domain
hyperon.security.active-directory.url higson.security.active-directory.url
hyperon.security.active-directory.root-dn higson.security.active-directory.root-dn
hyperon.studio.security.azure-active-directory.client-id higson.studio.security.azure-active-directory.client-id
hyperon.studio.security.azure-active-directory.tenant-id higson.studio.security.azure-active-directory.tenant-id
hyperon.studio.security.azure-active-directory.client-secret higson.studio.security.azure-active-directory.client-secret
hyperon.studio.security.azure-active-directory.base-url higson.studio.security.azure-active-directory.base-url
hyperon.studio.security.azure-active-directory.username-attribute-name higson.studio.security.azure-active-directory.username-attribute-name
hyperon.studio.security.azure-active-directory.roles-origin higson.studio.security.azure-active-directory.roles-origin
hyperon.studio.mail.host higson.studio.mail.host
hyperon.studio.mail.port higson.studio.mail.port
hyperon.studio.mail.username higson.studio.mail.username
hyperon.studio.mail.password higson.studio.mail.password
hyperon.studio.mail.from higson.studio.mail.from
hyperon.studio.superpack.environments higson.studio.superpack.environments test, prod
hyperon.studio.superpack.test.url higson.studio.superpack.test.url
hyperon.studio.superpack.test.username higson.studio.superpack.test.username
hyperon.studio.superpack.test.password higson.studio.superpack.test.password
hyperon.studio.external.environment.codes higson.studio.external.environment.codes test, prod
hyperon.studio.external.environment.test.url higson.studio.external.environment.test.url
hyperon.studio.external.environment.test.username higson.studio.external.environment.test.username
hyperon.studio.external.environment.test.password higson.studio.external.environment.test.password
hyperon.studio.global-search.history-limit higson.studio.global-search.history-limit
hyperon.studio.security.login.attempts-limit higson.studio.security.login.attempts-limit
hyperon.studio.security.login.attempts-cooldown higson.studio.security.login.attempts-cooldown
hyperon.studio.ui.show-stacktrace higson.studio.ui.show-stacktrace true or false
hyperon.studio.security.login.auto-login higson.studio.security.login.auto-login true or false
hyperon.studio.session.require-message higson.studio.session.require-message
hyperon.studio.security.password.send-reset-tokens higson.studio.security.password.send-reset-tokens true or false
hyperon.studio.region.updater.task-cron higson.studio.region.updater.task-cron

HIGSON RUNTIME:

Version 2.3 Version 4.x default value
hyperon.runtime.security.type higson.runtime.security.type
hyperon.runtime.function.validate-arguments higson.runtime.function.validate-arguments true
hyperon.runtime.normalization.throw-on-exception higson.runtime.normalization.throw-on-exception
hyperon.runtime.external-datasource.sql.names higson.runtime.external-datasource.sql.names
hyperon.runtime.external-datasource.sql.test.url higson.runtime.external-datasource.sql.test.url
hyperon.runtime.external-datasource.sql.test.username higson.runtime.external-datasource.sql.test.username
hyperon.runtime.external-datasource.sql.test.password higson.runtime.external-datasource.sql.test.password
hyperon.runtime.dev-mode-enabled higson.runtime.dev-mode-enabled
hyperon.runtime.username higson.runtime.username
hyperon.runtime.parameter.value-never-null higson.runtime.parameter.value-never-null
hyperon.runtime.watchers.enabled higson.runtime.watchers.enabled true
hyperon.runtime.external-datasource.sql.names higson.runtime.external-datasource.sql.names

HIGSON RUNTIME REST:

Version 2.3 Version 4.x
hyperon.runtime-rest.security.user-cache-enabled higson.runtime-rest.security.user-cache-enabled

Authentication

Authentication in Studio

Standard / Basic Authentication

No extra actions needed to use it, it is available by default. You can choose from the following password encoder security algorithms: bCrypt (default) or Pbkdf2

To select a Pbkdf2 algorithm, you must set higson.security.basic.password-encoder=Pbkdf2 property in the application.properties You can choose the complexity of BCrypt algorithm by setting a property higson.security.basic.bcrypt.complexity with values between 4 and 31 are accepted, 5 is used by default. Be careful, since the bigger the value the safer algorithm is, but the performance impact is also increasing.

CAS Integration

1
2
3
4
5
6
    higson.studio.url=https://higson_server_adress/higson/app
    higson.studio.security.type=cas
    higson.studio.security.cas.server-url=https://cas_server_adress
    higson.studio.security.cas.login-url=${higson.studio.security.cas.server-url}/login
    higson.studio.security.cas.logout-url=${higson.studio.security.cas.server-url}/logout?service=${server.cas.loggedout}
    higson.studio.security.cas.logged-out-url=${higson.studio.url}/loggedOut

Active Directory

1
2
3
4
    higson.studio.security.type=active-directory
    higson.security.active-directory.domain=domain.local #Active Directory main root
    higson.security.active-directory.url=ldap://10.222.20.156:389/ #Active Directory server url
    higson.security.active-directory.root-dn=DC=domain,DC=local #AD root domain
Requirements for Access Directory user:
  • Login - not empty, min size: 1, max size: 200
  • First name - not empty, min size: 1
  • Last name - not empty, min size: 1
  • E-mail address - if empty Higson generates default e-mail consistent with schema: ’login@local.com'
  • Roles - min one role consistent with Higson role Higson supports role management. Roles defined in Active Directory must be compatible with roles in Higson structure.
Hierarchy of roles in Higson:
  • MPP_ADMIN - Higson Administrator
  • MPP_USER - Higson User
  • MPP_USER_READONLY - Readonly Higson User
  • HIGSON_SUPERPACK_IMPORT - Readonly Higson User with grant to import Superpack It is possible to create own roles in AD but remember to create same roles in Higson structure. It’s necessary to proper authentication process.

SAML

1. Configure Tomcat to use HTTPS.
2. Fill properties:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
    higson.studio.security.type=saml
    higson.studio.security.saml.base-url=
    higson.studio.security.saml.entity-id=
    higson.studio.security.saml.idp-metadata-file-path= #Path to identity provider metadata file
    higson.studio.security.saml.response-skew=60 #Determines maximum difference between clocks of the identity provider and Studio machines.
    higson.studio.security.saml.key-store.path=
    higson.studio.security.saml.key-store.pass=
    higson.studio.security.saml.key-store.alias=
    higson.studio.security.saml.key-store.keyPass=
    higson.studio.security.saml.roles-origin=  ##internal or saml
3. Generate metadata from Studio https://localhost:8080/higson/saml/metadata
4. Import generated metadata into Identity Provider.
5. Configure Identity Provider to send attributes with assertion response.
6. Available attributes:
  • NAME_ID (this is used as user login)
  • firstname
  • surname
  • mail
1
2
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] 
=> issue(store = "Active Directory", types = ("mail", "firstname", "surname"), query = ";mail,givenName,sn;{0}", param = c.Value);
  • roles (optional, if higson.saml.roles-origin=saml is specified roles are taken from assertion response therefore identity provider must be configured to send it with response). internal means Studio will take roles from database instead of saml assertion response to authorize user.
1
2
3
4
5
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-21-1861533720-3376411538-4102833532-1113", Issuer == "AD AUTHORITY"] 
=> issue(Type = "roles", Value = "MPP_USER", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, ValueType = c.ValueType);

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-21-1861533720-3376411538-4102833532-1114", Issuer == "AD AUTHORITY"] 
=> issue(Type = "roles", Value = "MPP_ADMIN", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, ValueType = c.ValueType);

Azure Active Directory

  1. Go to Azure Active Directory tab in Azure console
  2. Register Higson app under “App registrations”.
  3. Select registered app
  4. Add redirect url under “Higson” → “Authentication”:
    • Choose “Add a platform” → “Web”,
    • Paste url http://{higson_context_url}/login/oauth2/code/ for example; http://localhost:8080/higson/login/oauth2/code/,
    • no need to check any checkbox related to auth tokens
  5. Add Higson role (e.g. MPP_ADMIN) under “Higson” → “App roles” (User & Groups).
  6. Generate secret for the app under “Higson” → “Certificates & Secrets”.
  7. Go back to Active Directory tab
  8. Go to “Enterprise applications” and choose the newly added app.
  9. From “Enterprise applications” go to “Users and groups” and add a user. Select previously created role while adding a new user.
  10. Go back to Active Directory tab
  11. Go to “App registration” → “Higson” → “Token Configuration” and add an optional claim. “Token Type” → “ID” and choose email. Check “Turn on the Microsoft Graph profile permission (required for claims to appear in token).” from the popup.
1
2
3
4
5
6
7
    higson.studio.security.type=azured
    higson.studio.security.azure-active-directory.client-id=
    higson.studio.security.azure-active-directory.tenant-id=
    higson.studio.security.azure-active-directory.client-secret=
    higson.studio.security.azure-active-directory.base-url=http://localhost:8080/higson
    higson.studio.security.azure-active-directory.username-attribute-name=preferred_username
    higson.studio.security.azure-active-directory.roles-origin=azuread

Authentication in Runtime REST

Standard / Basic Authentication

No extra actions needed to use it, it is available by default. You can choose from the following password encoder security algorithms: bCrypt (default) or Pbkdf2

To select a Pbkdf2 algorithm, you must set higson.security.basic.password-encoder=Pbkdf2 property in the application.properties You can choose the complexity of BCrypt algorithm by setting a property higson.security.basic.bcrypt.complexity with values between 4 and 31 are accepted, 5 is used by default. Be careful, since the bigger the value the safer algorithm is, but the performance impact is also increasing.

Active Directory

1
2
3
4
    higson.studio.security.type=active-directory
    higson.security.active-directory.domain=domain.local #Active Directory main root
    higson.security.active-directory.url=ldap://10.222.20.156:389/ #Active Directory server url
    higson.security.active-directory.root-dn=DC=domain,DC=local #AD root domain

JWT Based authentication Token

1
2
higson.studio.security.type=jwt
higson.security.jwt.secret-key=you_secret_key

The property higson.security.jwt.secret-key must be set in both Studio’s and client’s side Runtime Rest application with same string sequence

You can generate a new token in Studio. A view to see all existing tokens and to generate a new one can be found in Menu’s Tools tab. When creating a new token, you can specify the expiry date. Admin users may also specify a user that a newly generated token will be assigned to. To use generated token in REST API calls, you need to add an Authorization Header with the standard bearer format, such as Authorization: Bearer your_jwt_token

Upgrade

Higson applications upgrade

This is wise to upgrade Higson applications (the Studio and Runtime) for a newer version as we are repairing bugs and adding new features, so let’s check how to do it in a few short steps.

IMPORTANT:

  • As far higson-studio and higson-runtime are separate applications we truly recommend running them the same version.
  • Higson Studio MUST BE STARTED FIRST! Higson Studio is managing the Database Schema!
  • If your current version starts with 1.x and you want to bump version do 2.x line later go to this article.

Bump the Studio application first

Download Studio

Firstly, download application from here. After filling the form, you will get mail with a link to your download page. Depending on your needs, download the file/files (probably you use a war file with your tomcat).

Shut down old Studio.

Turn off the Studio App. You probably want to stop all running applications which are using higson-runtime, because we need to modify its database schema.

Remember to create a database backup!

Due to the fact, there might occur database updates, it would be very helpful if you prepare a Higson’s database backup.

Switch .war files at your tomcat /webapps directory
Start the Studio Application

You should be able to see a standard login page (by default: https://{serverUrl}/higson/app)

Bump the Runtime in your applications

Since Runtime is available at Maven Central repositories, you should only bump its version at your building script, ie: build.gradle, pom.xml etc.

Migrate between versions

Bump the Studio application

Download new Studio

The first step you should do is to head for new applications here. Search for version of 4.0

Shut down the Studio

Turn off the Studio App. You probably want to stop all running applications which are using higson-runtime, because we need to modify its database schema.

Remember to create a database backup!

Due to the fact, there might occur database updates, it would be very helpful if you prepare a Higson’s database backup.

Check out new properties

In a Higson Studio 4.x there were a lot of changes with properties.

Take a look at your property source (by default: {your_tomcat_dir}/conf/application.properties) and change them regarding the table followed the link

Copy files to your tomcat.

  • replace file conf/server.xml,
  • copy conf/Catalina directory to your tomcat
  • remove old .war file from webapps and copy new higson#api.war and higson#app directory.

Start the Studio App

You should be able to see a standard login page (by default: https://{serverUrl}/higson/app)

Bump the Runtime in your applications

Since Runtime is available at Maven Central repositories, you should only bump its version at your building script, ie: build.gradle, pom.xml etc. Check out the new properties for Runtime App since there were a lot of changes.

Enabling developer mode (devmode)

Enabling a developer mode feature allows seeing all unpublished changes of a defined user by the Runtime application, which leads to faster development. Developer mode is disabled by default.

Enabling devmode programmatically

1
2
3
4
5
6
7
8
@Bean
public HigsonEngine higsonEngine() {
	HigsonEngineFactory factory = new HigsonEngineFactory();
	...
	factory.setDeveloperMode(true);
	factory.setUsername("username"); //login of user which changes you want to see at devmode
	...
	return factory.create();

Enabling devmode using property file

Configuration that is needed in application.yml to enable developer mode:

1
2
3
4
higson:
  runtime:
    dev-mode-enabled: true
    username: <username> #login of user which changes you want to see at devmode

Using HigsonEngineFactory excludes a possibility to use application.yml.

Disabling cache for a bundle

Caching bundle saved or read by Higson Persistence may be configured in three different ways.

1. Automatically generated EhCache

If cache is not configured on sight then Higson Persistence creates its own EhCache with the name : gmo and idleTime=10 minutes

2. Use selected EhCache region

You may configure it to use selected EhCache region

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
@Profile("!nocache") //turn off nocache profile
@Bean(destroyMethod = "destroy")
public HigsonPersistenceFactory cacheableHigsonPersistenceFactory() {
	HigsonPersistenceFactory factory=new HigsonPersistenceFactory();
	factory.setDataSource(gmoDataSource);
	factory.setHigsonDataSource(runtimeDataSource);
	factory.setDefaultProfile(env.getProperty("higson.profile"));
	factory.setAutoStartWatchers(true);
	factory.setHiloSequenceName("hp_seq");
	factory.setHiloAllocationSize(100);
	factory.setBundleTable("hp_bundle");
	factory.setBundleColumn("bundle_id");
	factory.setOwnerColumn("owner_id");
	factory.setOwnerPropertyColumn("owner_prop");

	factory.setCacheName("abc") // execute it during Higson Persistence configuration

	return factory;
}
  • if it is defined ehcache “abc” then it uses that
  • if it is not defined ehcache, then it will create ehcache with name “abc” in default configuration

3. Add your own implementation

On HigsonPersistanceFactory may add your own implementation of cache (based on map or other cache) using HigsonPersistanceFactory.setCache(BundleCache) method

If you want to turn the cache off (for example for testing purposes) you need to give your cache implementation like follow:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class NoBundleCache implements BundleCache {

	@Override
	public Bundle get(long id) {
		return null;
	}

	@Override
	public void put(Bundle bundle) {}

	@Override
	public void remove(long id) {}

	@Override
	public void clear() {}
}

@Profile("nocache") //turn on nocache profile
@Bean(destroyMethod = "destroy")
public HigsonPersistenceFactory noCacheHigsonPersistenceFactory() {
	HigsonPersistenceFactory factory = new HigsonPersistenceFactory();
	factory.setDataSource(gmoDataSource);
	factory.setHigsonDataSource(runtimeDataSource);
	factory.setDefaultProfile(env.getProperty("higson.profile"));
	factory.setAutoStartWatchers(true);
	factory.setHiloSequenceName("hp_seq");
	factory.setHiloAllocationSize(100);
	factory.setBundleTable("hp_bundle");
	factory.setBundleColumn("bundle_id");
	factory.setOwnerColumn("owner_id");
	factory.setOwnerPropertyColumn("owner_prop");

	factory.setCacheName("abc");
	factory.setCache(new NoBundleCache()); //setting custom cache implementation

	return factory;
}

Changelog

Changelog

4.0.2 April 03, 2024

CHANGES:

ADDED :

  • Various emails to set new password depending on new or existing user
  • Fk index on table with imported snapshot history
  • inTree attribute to domain definition component
  • Duplicate decision table action

FIXED: :

  • Date formatting error in groovy functions
  • NPE during calling higson.call(“func”, null)

4.0.1 January 25, 2024

CHANGES:

ADDED :

  • Truncate very large logging data

FIXED :

  • Hide jdbc password appended to jdbc url
  • Improved sorting of decision tables and functions by region

4.0.0 January 08, 2024

Hyperon’s business rules engine transforms into Higson!

What’s new :

  • Even More Intuitive Studio - Discover our new, user-friendly interface that simplifies both technical and business tasks.
  • Simplified Structure Configuration - Tailoring your business application structure is now more straightforward, whether you’re an IT expert or a business strategist.
  • Optimized Decision Tables Creation - Creating and editing decision tables has become simpler, and optimized for greater clarity and control.
  • New Versioning - We’ve upgraded our versioning scheme, to be more intuitive and easier to manage.
  • Changed architecture - FE and BE are released separately