Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Contact Us
English (US)
US English (US)
AT German (Austria)
  • Home

Using Flex parameters

Written by Bettina Schmoll

Updated at May 13th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

+ More

 

1.General

In the system, Flex.Parameters represent a cross between a data table and a dimension. Depending on their use, data can be stored in them and then read out at a later time – similar to a data table – for further calculations. On the other hand, the data can represent certain master data – similar to a dimension – that can also be retrieved and reused at a later time.

The only limitations that arise are, firstly, that not as many dimensions can be saved as with a data table, and, depending on the definition of the Flex parameter, these dimensions cannot be empty. Secondly, there can and may only be a single data record for each combination of dimensions with the service date. This can make automatic data import complex to create.

2. Creating a Flex.Parameter

The flex parameters can be found in the configuration:

After clicking the Flex. Parameters button, you will see a list of all Flex.Parameters already present in the system, along with a brief description.

A new Flex.Parameter is created either by clicking the “ Insert ” button above or by left-clicking on the lines displayed on the left of an existing line.

To do this, enter the "CODE" and "Description" fields as a unique name. "Dynamic" is preferred as the version, as the "Old" version is only available for compatibility reasons.

The Flex.Parameter must then be opened using the “ Configuration ” button.

2.1 Dimension key

When setting up the Flex.Parameter, you first need to define the dimensions that will be relevant for the query and according to which the values should be structured. These dimensions should all be entered using the "Dimension Key" parameter type.

In the “Dimension Usage Type” column, you can set how the Flex.Parameter should react to values of this dimension.

The most commonly used are “Same Code” and “Same or Empty for All”.

If you select “Same Code”, the Flex.Parameter only returns a value if exactly this dimension code is included in the query.

If you select "Equal or Empty for All", a value will be returned even if the query for the dimension returned a hit or if no value was assigned to this dimension due to the structure in the report.

 

An example:

A discount percentage of 2% should be granted for all items in a product booking group, but an individually definable discount percentage should be granted for individual items within this product group.

The dimensions in the Flex.Parameter are to be created as follows:

A record with the dimension value for the product posting group and the discount percentage is created in the Flex.Parameter values. The column for the item number initially remains empty.

When queried in the report, the discount percentage of the product group is initially displayed for all records of this product group.

If additional data records are now created in the Flex.Parameter with product group and article number, the percentages stored for the individual article will also be displayed in the report for these articles.

 

The settings in the Flex.Parameter and the result on the web then look like this:

 

2.2 Date key

In addition to the dimensions, it is possible to store date values in the Flex.Parameter. These can then assume various functions. For example, it is possible to store a value that is only valid within a defined time range. It is also possible to specify that a value is only valid on a specific day.

However, this function is most commonly used to record changes in a value over a period of time. A classic use case is recording an exchange rate. This rate remains valid until a new value is recorded for that currency.

This function is also useful for viewing historical values, as it converts the historical values using the exchange rate that was valid at the time.

 

To do this, a new row of the " Date Key " parameter type is inserted after the dimensions in the Flex.Parameter. In most cases, the service date is used as the field. The setting in the " Date Usage Type " column is also important. "Start Date" and "End Date" specify the start and end of the validity of a value, respectively.

If you assume that a value is valid until it is replaced by a new value, as is the case with an exchange rate table, for example, a date field set to the value "Start Date" is sufficient. This way, the entered value is always valid from this date until it is replaced by a new value at a later date.

However, if the value should only be valid within a fixed period of time, such as a sales price for a promotion, a second date field must be added. The first will then receive the value "Start Date" in the "Date Usage" column, and the second the value "End Date." This then precisely limits the period.

The “Key date” setting, on the other hand, specifies that this value is only valid on this one specific day.

The settings in Flex.Parameter and on the web look like this. It's clear that the fixed date range setting can also cause gaps:

 


 

2.3 Value key

A value key is always added when the value returned by the Flex parameter should be dependent on a specific value. One possible application example is a quantity-dependent price scale.

To do this, add a line to the Flex.Parameter with the parameter type " Value Key ." The field name, like the value field, cannot be selected; it must be entered manually. In the " Value Usage " column, you then select how the system should use the value.

The most common setting here is the “min. value”, which tells the system that this is the minimum value.

 

When querying the Flex.Parameter, a value must also be passed for each value key in the order of definition in the Flex.Parameter.

The system then first compares the dimension and date keys. It then uses the additional values provided to determine the appropriate value from the Flex parameter.

2.4 Text or HTML text

 

The "Text" and "HTML Text" parameter types are suitable for storing text or other alphanumeric values in a Flex parameter. The "HTML Text" type also offers the option of formatting the text (bold, italic, underlined, font size, font type, etc.). However, the limitation of an HTML text field in a report is that it cannot be exported to Excel, as Excel cannot handle HTML formatting.

 

The names for the text fields can be freely assigned and cannot be selected.

 

2.5 Value (Decimal)

The most important parameter type, which should always be entered last, is the "Value (Decimal)" type. This represents the purely numeric value in a Flex parameter.

The name for this value can be freely assigned.

When querying on the web, please pay attention to upper and lower case letters.

3. Filling a Flex.Parameter

Once a Flex.Parameter has been created, there are several ways to populate it with values for future use. Here are the three possible ways it can be populated:

3.1 Manual entry

The easiest way to pre-populate a Flex parameter is to enter the values manually. However, this method is only suitable for a small number of records and values that will not change in the future. Furthermore, the user who will be changing the data must also have access to Navision.

To do this, in Navision, call up the menu item Controlling Module / Setup / Flex.Parameters.

After selecting the desired Flex.Parameter, the existing entries can be displayed, edited and new ones added via the menu item “Flex.Parameter Entries”.

The dimensions, date fields, value keys, and values must be set according to the settings of the respective Flex.Parameter. Only the task type remains blank when entered manually via the Navision interface.

 

3.2 Data import

Another way to populate a Flex.Parameter with values is through a data import . To do this, specify "Flex.Parameter" as the target table when creating the import definition.

The Flex parameter into which the data is to be imported must then be set in the import definition.

 

Then, in the Columns tab, the dimensions, date fields, value keys, text fields and values stored in the definition of the Flex.Parameter must be filled accordingly.

The target dimensions and date fields can be selected from the list. The names of the text and value fields must be entered manually, taking case into account.

 

! IMPORTANT !

There can and may only be one value per combination of dimensions, value keys, and dates. Importing two or more records with the same combination of dimensions, value keys, and dates will result in an error message.

3.3 Report / Web Input

Another convenient way to fill a Flex parameter is via a web report . The advantage of this method over manual entry in Navision is that any user with access to the report can enter the data.

To implement a web entry, simply check the " Editable " or " Web Manual Entry " box in the column containing the Flex.Parameter in the column schema, as well as in the row and report schema. The entered values will then be automatically written back to the Flex.Parameter.

This is the only difference to querying the Flex parameter in the report.

4. Querying a Flex.Parameter

Querying a Flex parameter is more difficult than querying a normal value from one of the data tables.

In the latest versions updated after January 2020, it is also possible to query a Flex.Parameter using an extended amount type . This amount type was automatically generated by the system and is structured according to the pattern " Flex. [Name of the Flex.Parameter] -> [Name of the value field] ".

This only works for all those Flex parameters that do not require value keys to be passed in the query.

In older versions, querying the Flex parameters only works via a formula.

There are several commands for this purpose: FLEXPARAM, FLEXPARAMEXT and FLEXPARAMKEYTEXT , the latter of which is only intended for developing and debugging a Flex.Parameter query.

What all of these formula commands have in common is that the name of the Flex.Parameter and the value field to be read, as well as a complete set of dimensions, value keys and the date key, must be passed so that the system returns a value.

The FLEXPARAM command only requires the name of the flex parameter and the value field. The system attempts to compile all other dimensions and date fields from the column and row-level structures and the date fields. If this succeeds, the system returns the value of the value field from the flex parameter.

The example shown here returns the content of the value field “Rate” from the Flex.Parameter “Rate Conversion”.

If the Flex.Parameter also contained value keys, the values for the individual value keys would have to be specified and thus passed in the order in which they are defined in the Flex.Parameter.

 

However, if not all dimensions are available in the structure, or if values from variables for the date or dimensions need to be passed, the FLEXPARAMEXT command is the preferred method. First, as before, the name of the Flex.Parameter and the name of the value field are passed. Then, the values for the dimensions, date fields, and all value keys must be passed in the same order as they are defined in the Flex.Parameter. Omitting individual values is not possible.

However, there is a trick so that not every value has to be passed as a variable or fixed value, but the system still gets the values for the dimensions and the date from the column or row structure: instead of the value or the variable, “=>” is passed as a value under single quotes.

 

An important tool for debugging a Flex.Parameter query is the FLEXPARAMKEYTEXT command. This outputs all parameters used for the query as text instead of the value. These parameters can then be used to check the values in a Flex.Parameter and thus manually reproduce the query.

It is used analogously to the FLEXPARAM command.

 

 

 

usage flex parameters

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Data import basic info
  • Creation of dimensions, data tables and extended amount types

Copyright 2025 – BI4 Controlling Software GmbH.

Knowledge Base Software powered by Helpjuice

Expand