Die BPC Version 4.1 wird nicht mehr gewartet.

Sollten Sie diese BPC Version nutzen, empfehlen wir Ihnen eine Migration auf eine aktuelle Version. Die Dokumentation zur neusten BPC Version finden Sie hier. Sollten Sie Fragen haben, wenden Sie sich bitte an unseren Support.

Configuring the Monitor Columns

Column configuration in the monitor is done via the setting column_config. The setting consists of a JSON array in which an object is specified for each column.
It looks something like this:

[
	{
		SPALTEN_KONFIGURATION_FUER_SPALTE_1
	},
	{
		SPALTEN_KONFIGURATION_FUER_SPALTE_2
	},
	{
		SPALTEN_KONFIGURATION_FUER_SPALTE_n
	}
]

The following column configurations apply only to the table in the monitor and cannot be applied to the column configurations of the tables in the detail views.

For column configurations in the detail views, see also: Configuring Monitor Detail Views.

Configuring a Column

A column’s configuration is defined in a JSON object and can include the following attributes:

Attribute Data Type Description

dataIndex

text

Column/field name of the data source whose value is to be displayed.

If the same "dataIndex" is used for multiple columns, you should also set "stateId" to different values so that the columns can be distinguished internally.

text

text

Column header label

headerIconCls

text

Icon displayed in the column header.
FontAwesome CSS class: e.g., "fal fa-table"

hidden

boolean

Initial visibility of the column.
Default: false

hideable

boolean

If this value is false, the user cannot change the visibility.
Default: true

width

number

Width of the column in pixels.
Do not use the text "123"; use 123 instead

xtype

text

Configuration of the column type, e.g., datecolumn, bpcCheckColumn, booleancolumn, actioncolumn, attachmentcolumn.
Default: column

customRenderer

boolean/text

Controls the column display or renderer.
See Renderer (customRenderer)

filter

JSON

{

source: "lowercase",

type: "text"

}
source

Data is searched (filtered) using the index. For all data imported into the BPC, three methods are used to write data to an index (all three are always available for text content). The "filter source" controls which of these indexes is used.

Brief description of the possible values for "source":

  • analysed - Text is split at word separators (https://unicode.org/reports/tr29/) and converted to lowercase

  • raw - Text is retained exactly as is

  • lowercase - Text is converted to lowercase but not split

    Example:
    Input text is "It’s a beautiful day."
    Result(s) in the index:
    # "it","is","a","beautiful","day"
    # "It’s a beautiful day."
    # "es ist ein schöner tag."

type

See Filter Types.

In addition to the automatically set object attributes, you can set the following values:

Attribute Data type Description

format

string

This attribute allows you to customize the display of date values, time values, or numbers.
Condition:
For the "xtype" attribute, "datecolumn" (for date formats) or "numbercolumn" (for number formats) was set or automatically generated.

Examples:
* Date: d.m.Y H:i
* Decimal number: #,###
* Monetary amount: #,###.00 €

formatter

string

This attribute allows the use of a method from Ext.util.Format to format the value.
Example:

"formatter": "fileSize"

cellWrap

boolean

Allows text breaks (line breaks) within a cell.
The following are considered line breaks: <br/>, CR, LF, CRLF. The latter can be generated using the corresponding formatter function in XPath
Condition: For the "formatter" attribute, "nl2br" has been set.

role

string|string[]

Restricts column visibility to a specific role. If a list of roles is specified, the current user must have at least one of those roles.

Example:

"role": ["bpcadmin"]

organisation

string|string[]

Restricts column visibility to a specific organization. If a list of organizations is specified, the current user must be assigned to at least one of the organizations.

Example:

"organisation": ["banker"]

right

string|string[]

Limits column visibility to a right. If a list of rights is specified, the current user must have at least one of the rights.

Example:

"right": ["to_something_right"]

flowId

string

ID of the flow component that the system references, which writes data to the monitor.

flowId is required when using "customRenderer" = "flow!_!flowRenderer" and is necessary only there. Commonly used in the externalReference column.

Example:

"flowId": "mein-iguasu"

hideUnknownObjects

boolean

If true, unknown objects (those that are not of type iguasu or inubit ) are not displayed as strings.

hideUnknownObjects is optional and only affects the column when "customRenderer" = "flow!_!flowRenderer" is used. Typically used in the externalReference column.

linkIcon

string

Defines the icon displayed next to the text.
Default: "x-fal fa-external-link"

Example:

"linkIcon": "x-fal fa-fire"

linkIcon is optional and only affects the column when "customRenderer" = "flow!_!flowRenderer" is used. Commonly used in the externalReference column. Use "linkIcon": " " to not display an icon.

Renderer (customRenderer)

The following description refers to the customRenderer attribute in the column configuration. There are three different configuration options.

Boolean value

Setting this to false means no renderer is used. When true , the monitor component’s configuration (see screenshot on the right) first searches for a renderer with a matching name.
Matching is based on renderer name = column data index (e.g., PROCESSID = PROCESSID).
Purpose: to display different renderers for different values in the same column.

If no renderer with a matching name is found, the "defaultRenderer" is used.

  • Refresh after editing
    After changing the configuration, the browser should be reloaded once.

  • Lowercase Matching
    The value checked during matching should be in lowercase.

  • Renderer for Child Logs Renderers for child logs follow the same rules as renderers for parent logs. Note that the child column in the childlogs table should have the same name as its parent column.

Specifying the renderer name

If you specify the renderer name as a string, there are two options: A search is performed in column_customerRenderer for a renderer with the specified name.

Example: "customRenderer": "TEST-RENDERER" expects an entry named "TEST-RENDERER" in "column_customRenderer".

Referencing Custom Renderer Functions

To use custom renderer functions, the following syntax must be used in the configuration:

MODUL!_!FUNKTION

This specification is converted to the following form: MODUL.Module.FUNKTION()

This function is evaluated, and the renderer function is expected as the return value.

To use a custom function, it must be loaded when the monitor is called. This can be done, for example, by including a custom BPC module or using the configuration `"view_additionalFiles" (see Core Services).

The following function can be configured as a renderer as follows:

"customRenderer": "bpcCustomRenderer!_!uppercase"
Ext.define("bpcCustomRenderer.Module", {
    singleton: true,

    uppercase: function () {
        return function (value, meta, record) {
            return String(value).toUpperCase();
        };
    }

});

If not defined, the system checks whether the respective column has the dataIndex “STATUS,” and if so, the defaultRenderer from the object is used.

Additional column configuration parameters can be found directly in the ExtJS documentation.

Formatter

The following description refers to the formatter attribute in the column configuration.

Translate

If the formatter attribute is set to "translate" in the column configuration, the values of this column are translated, provided a corresponding translation is available.

Beispielkonfiguration einer Spalte mit Formatter
    {
        "formatter": "translate",
        "dataIndex": "STATUS",
        "text": "STATUS"
    }

Datum

Wird in der Spaltenkonfiguration das Attribut formatter beispielsweise auf "date(Y-m-d)" gesetzt, werden die Werte dieser Spalte im Monitor als Datum im angegebenen Format dargestellt.

Date Formatter
    {
        "formatter": "date(Y-m-d)",
        "dataIndex": "timestamp",
        "text": "Time"
    }

Runden

Wird in der Spaltenkonfiguration das Attribut formatter beispielsweise auf "round(2)" gesetzt, so werden die Werte dieser Spalte auf 2 Nachkommastellen gerundet.

Klein/Großschreibung

Wird in der Spaltenkonfiguration das Attribut formatter beispielsweise auf "lowercase" gesetzt, so werden die Werte dieser Spalte auf in lowercase dargestellt. Analog geht diese Konfiguration auch mit uppercase

Lower-Case-Formatter
    {
        "formatter": "lowercase"
    }
Upper-Case-Formatter
    {
        "formatter": "uppercase"
    }

Für weitergehende Informationen zu Formatierung in Monitorspalten siehe ExtJS Dokumentation

Spaltentypen

Der Spaltentyp wird durch die Einstellung des xtype definiert. Ist kein xtype angegeben, handelt es sich um eine einfache Textspalte.

Optionen:

xtype der Spalte Filter.Type-Option Beschreibung

datecolumn

date

Komplexes Datumsfeld

datecolumn

simpleDate

Einfaches, schnelles Datumssuchfeld, welches den Filter auf den angegebenen Tag setzt.

attachmentcolumn

Spalte zum Download von Inhalten aus der SQL-Tabelle.

templatecolumn

Eine Spalte, deren Wert im Frontend via JS manipuliert werden kann.

bpcCheckColumn

Checkbox-Spalte

gridActionColumn

Eine Spalte, die alle ProcessAction-Spalten in einer Spalte kombiniert und einen Button oder Dropdown für diese Actions anzeigt.

TemplateColumn - xtype = templatecolumn

Die templatecolumn bietet die Möglichkeit den Wert der Spalte im Frontend zu modifizieren und bspw. zu kürzen, umzuwandeln oder um Werte aus anderen Spalten anzureichern. Hiermit kann bspw. eine Hyperlink-Spalte erzeugt werden.

Um eine Spalte mit Hyperlink zu erzeugen, kann in der ColumnConfig der Spalte der xtype templatecolumn gegeben und das Template tpl definiert werden.

Über die Platzhalter mit den geschweiften Klammern können auf sämtliche Daten (Spalten) des aktuellen Record (der aktuellen Zeile) mit deren dataIndex zugegriffen werden.
Sollen noch Funktionen auf den Wert angewendet werden, müssen innerhalb der geschweiften noch eckige Klammern eingefügt werden. Dann allerdings muss den dataIndizes noch "values." vorangestellt werden.

Bspw. eine Jira-Ticket-Spalte:

{
    "text": "Jira-Link",
    "dataIndex": "JIRA",
    "xtype": "templatecolumn",
    "tpl": "<a target=\"_blank\" href=\"{JIRA}\">{[values.JIRA.substr(values.JIRA.lastIndexOf('/') + 1)]}</a>",
    "width": 300,
    "minWidth": 64
}

In this example, a column with the dataIndex "JIRA" is created, which contains a Jira link in OpenSearch.
In BPC, the column is populated with a hyperlink that opens (target=\"_blank\") in a new window, where the href is the value of the column itself: {JIRA}
The link text is truncated to the substring after the last slash using the JS function values.JIRA.substr(values.JIRA.lastIndexOf('/') + 1).
This is achieved in the template via {[values.JIRA.substr(values.JIRA.lastIndexOf('/') + 1)]}.

Date - xtype = datecolumn

An attempt is made to interpret the column’s value as a date and display it in a formatted manner. The date format can be controlled using the format attribute. The syntax for the format can be found here. If no format is specified for the column, the date format of the monitor instance is used.

Process Action Column - xtype = gridActionColumn

If action columns are configured in a monitor that can be executed via the toolbar or the context menu, it is possible to create an action button for each row by adding this column.

Multiple action columns and multiple action entries within a single column are grouped into a dropdown menu. The number of actions is displayed on the button.

If only one action is available, it can be started directly by clicking the button.

The column can accept an additional Parameter: showIconOnly, which takes true or false This controls whether the button displays the full text per column or just the icon and the number of available actions.
The default value is false.

ShowIconOnly: false
{
    "dataIndex": "Action",
    "xtype": "gridActionColumn",
    "showIconOnly": false
}
ShowIconOnly: true
{
    "dataIndex": "Action",
    "xtype": "gridActionColumn",
    "showIconOnly": true
}

Attachment Column

This column type can be used to directly provide a download button for columns that contain a file.
The following monitor settings are used.

  • inubit_baseUrl

  • inubit_referenceEndpoint

  • inubit_proxyId

  • column_id

  • column_file

Example
{
    "filter": {
                "source": "raw",
                "type": "text"
                },
    "xtype": "attachmentcolumn",
    "hidden": false,
    "dataIndex": "REFFILE",
    "hideable": true,
    "width": 200,
    "customRenderer": false,
    "minWidth": 64,
    "text": "REFFILE"
}

bpcCheckColumn

It is also possible to define a column for boolean values that displays a checkbox instead of the value.

The values for "true" are:

  • true

  • 'true'

  • 1

  • '1'

  • 'yes'

To use a corresponding filter for the column, type must be set to 'check' within filter.

Example
{
  "filter": {
    "source": "raw",
    "type": "check"
  },
  "xtype": "bpcCheckColumn",
  "hidden": false,
  "dataIndex": "CHECKBOX",
  "hideable": true,
  "width": 200,
  "customRenderer": false,
  "minWidth": 64,
  "text": "CHECKBOX"
}

columncheck false

columncheck true

Jump Column (JumpColumn)

To jump from the monitor to another module (e.g., another monitor), an additional column with the xtype ` bpcModuleJumpColumn ` must be inserted in the column_config. In this column, the ID of the target module is entered under "targetModule". The column is then displayed with an icon in each row of the monitor. Clicking the icon executes the jump.

JumpColumn
Illustration 1. Monitor with jump column

It is also possible to trigger the jump to the target module from the context menu. In the context menu, the target module can be opened in three different modes:

  • Im neuen Tab öffnen: The target module is opened in a new tab.

  • Im diesem Tab öffnen: The target module is opened in the same tab.

  • URL kopieren: The URL of the target module is copied to the clipboard.

It is possible to disable the jump options Im neuen Tab öffnen and URL kopieren. See also jumpMenuDisableOptions.

JumpColumn - Context Menu
Illustration 2. Monitor with jump column and open context menu

If "sourceColumn" and "targetColumn" are specified, the current value from "sourceColumn" is set as a filter in the target monitor on the "targetColumn" column when jumping.

Excerpt from column_config
(...)
 {
    "targetModule": "auditlog",
    "xtype": "bpcModuleJumpColumn",
    "dataIndex": "text",
    "targetColumn": "action",
    "width": 300,
    "text": "Sprung zum Auditlog",
    "sourceColumn": "auditlog_action"
  },
(...)

Configuration parameters

Name Example value Description

xtype

bpcModuleJumpColumn

This parameter is required to use the jump column.

dataIndex

PROCESSID

Reference to the data field in the data source.
If the field in the current data record (row) does not contain a value, no link is provided (it will often contain the same value as "sourceColumn").

stateId

jumpPROCESSID

should be set (uniquely) if dataIndex occurs multiple times (e.g., because a normal column with the same dataIndex is also used).

targetModule

4711

ID of the module to be jumped to. Can also be the ID of the source monitor if the current view is to be filtered.

targetColumn

PROCESSID

Specifies the data field to be filtered in the target monitor.

targetRoute

"optional/route"

Appended to the URL route of the target module and can be evaluated separately by the module.

targetConfig

{"viewId":"allView"}

Optional JSON configuration passed to the target module.

sourceColumn

PROCESSID

Specifies the data field whose value is used for the target monitor’s filter (often contains the same value as "dataIndex").

showIcon

false

Specifies whether a link icon should be displayed in the cell.
Default: true

showValue

false

Specifies whether the current value (see "dataIndex") should be displayed in the cell.
Default: true

filterOperation

=*

Operator for the filter on the target monitor.
Default: =

filterSourceType

analyzed, lowercase

Specifies the data type to be filtered by.
Default: raw

filterType

date, dynamiclist

Specifies the filter type to be set.
Default: text

forceNewInstance

true

If this value is true, the target module is always created anew, even if it has already been displayed.
Default: false

jumpParamFn

proxy.BPC-proxy

Name of the function that is to process the jump parameters. The returned value must not contain any circular references. (Must be supported by the target module)

vamLinkType

customIds

For the "Data Management" target module. The jump column content is interpreted as "id" (for "assets") or "customId" (for "customIds")
Default: assets

vamTemplateCustomId

ZAEHLPUNKT

For the "Data Management" target module. When using vamLinkType=customIds, this VAM template is used as a filter to identify the assets. This prevents random additional hits.

urlTpl

&KEY={COLUMN_NAME}

Only for the "External Content" target module. A template that is evaluated with the current data record. The result is appended to the URL of the "External Content" module.

text

Link

Column header label

headerIconCls

x-fal fa-table

Icon displayed in the column header

filter

Omit or specify 'filter: false' to prevent a filter from being applied.

iconCls

x-fal fa-table

Icon displayed in the cell.
Default: x-fal fa-external-link

separator

","

Splits the string at the separator and creates individual links. In this case, sourceColumn is ignored and the individual values are passed.
Default: ""

openNewTab

true

Opens the target module in a new tab.
Default: false

jumpMenuDisableOptions

false

Disables the advanced jump options in the context menu

jumpMenuIconCls

Icon displayed in the jump column menu item

jumpMenuText

Text displayed in the jump column menu item.

A template can be used. This allows you to combine column configuration attributes, the value of the source column, and translations with static content in any way you like.

Example: Monitor: {column.targetModule} - {translate:translate('MONITOR_TARGET_FILTER')}: {value}

Assuming that the column value is login and targetModule is configured with auditlog, the following result is produced in the German interface: Monitor: auditlog - Zielfilter: login

Jump to "External Content" module

Jump to External Content

Configure jump column for Data Management

Jumps from a monitor to an artifact located in Data Management are possible via their display names and their technical IDs (“assets”). It is important to note that the display name is a configuration detail of Data Management. This means that if you select the display name for the link but later change it, this change will cause problems for jump columns that have since been configured to use it. To prevent this, you can set the display name in Data Management to “unchangeable” so that it cannot be modified at will later on. You can check what the display name looks like directly in Data Management in the “Display Name” column.

A second method is via the config assets, as shown in the image. To do this, set ` vamLinkType ` to ` assets `. The image also shows where to find the assets. In this case, the Data Management artifact whose TechnicalID matches the value in the monitor is linked.

Jump to Data Management

Filter Types

Each column should contain a configuration for the filter in the monitor. This configuration includes at least the attribute type and, depending on that, the attribute source. Additional attributes may be included depending on the filter type.

The type attribute specifies the filter to be used. These filters are described individually below. The filter type is not necessarily tied to the data or column type; however, not all combinations are meaningful.

Disable filters
If you do not want to use a filter on a column, you can omit the attribute filter in the column configuration or set the type to false under filter.

Renderer in Filter

If a CustomRenderer has been defined for a column, it is also applied to the suggestion list in the filter field.

Renderer with Original Value

First, the rendered value is displayed, followed by the source value in parentheses, and finally—if known—the number of records with that value.

If you do not want the source value to be displayed, you can hide it by specifying ` "hideRawValue":true ` in the filter configuration.

Renderer without source value

Text Filter - type = text

This filter allows you to enter any text for filtering.

List Filter - type = dynamiclist

The dynamic list filter allows the user to select filter values from an automatically generated list. The list is compiled from all values available in the monitor for this column. If this list of results is incomplete, a warning displaying the number of values will be shown. If all values are to be displayed, the filter can either be set to remote or the maxQuerySize Parameter can be increased.

This filter type can only be used with source "lowercase" or "raw".

dynamicList
Local Filter - default

To use this filter, the Parameter queryMode must be omitted or set to local . When the filter field is opened, the results list is loaded once.

By default, only the first 100 unique values and their rendered representations are included. However, the length of the results list can be controlled using the maxQuerySize Parameter (maximum 1000). If the suggestion list is to include more values (in this case, 250), the following settings should be configured.

{
    "filter": {
    (...)
      "type": "dynamiclist",
      "fieldConfig": {
        "queryMode": "local",

        "maxQuerySize" : 250
      }
    },
    (...)
  },

However, this means that when typing text, you will no longer receive suggestions based on the rendered values, but only based on the raw values in the underlying database.

Remote Filter

To use this filter, the Parameter queryMode must be set to remote. After opening the filter field, the results list is reloaded every time you type in the filter field.

By default, only the first 100 unique values and their rendered representations are included. However, the length of the results list can be controlled using the ` maxQuerySize` Parameter (maximum 1,000). If the suggestion list should include more values (in this case, 250), then the following settings should be configured.

{
    "filter": {
    (...)
      "type": "dynamiclist",
      "fieldConfig": {
        "queryMode": "remote",
        "maxQuerySize" : 250
      }
    },
    (...)
  },

Time Period Filter - type = daterange

Selection component for both absolute and relative time periods.

The quick selection of rolling time periods can be configured using the configuration parameter dateRange_favorites.

The component can be customized as needed using the fieldConfig in the columns.

Example configuration with default start/end times:
{
    "filter": {
      "source": "raw",
      "fieldConfig": {
        "absoluteDefaultStartTime":"00:00:00",
        "absoluteDefaultEndTime":"23:59:59"
      },
      "type": "daterange"
    },
    "xtype": "datecolumn",
    "hidden": false,
    "dataIndex": "timestampUTC",
    "hideable": true,
    "width": 200,
    "customRenderer": false,
    "localized": {
      "text": "CORE_TIME"
    },
    "minWidth": 64
  }
monitor custom renderer daterange filter 01
monitor custom renderer daterange filter 02
monitor custom renderer daterange filter 03

Numeric Filter - type = number

Enables filtering using numeric values. The default operator can be defined in the ColumnConfig. If none is defined, = is the default operator.
The column menu can also be used to set the operator (>, <, =, \,⇐,>=)

{
    "filter": {
    (...)
      "type": "number",
      "operator": ">"
    },
    (...)
}

JSON Filter - type = json

Enables filtering in structured data. It allows you to combine multiple filter criteria for a single column.

{
    "filter": {
      (...)
      "type": "json"
    },
    (...)
}

Automatic Column Configuration

If no column configuration exists (the monitor is being created), it is created automatically. If you want to regenerate the column_config, you can do so by saving an empty JSON array ("[]") as the value for column_config or by resetting it using the Delete button at the end of the row (followed by saving).


Keywords: