# Celonis Product Documentation

### Studio Release Notes

##### Studio release 24.05.2022

Change in view variable behavior

With our latest release on May 24th we introduced a change in view variable behavior.

Previously, variables changed back to their default value through view reload (e.g. refresh of a page or navigation between views). The selected value did not persist. If a default value is set, the variable always defaults to that. If it is not set, the value always gets reset to empty/null.

Now variables keep the latest variable value until it’s changed proactively to a new value. This reduces the end user effort and ensures the views always show relevant content. The change will also improve performance of views.

Old behavior

New behavior

Initial State

Variable is set

How can I now reset a variable to its default value after the new change?

For that use case you can build a reset button using the view component button.

Buttons can be configured to update variables. You simply list the view variables that should be reset by the click of the button and select "null" as a value.

You can either use the visual editor or the YAML editor of the button component.

Visual editor

YAML editor

Null, true and false are no longer stringified in component settings

In the past, values such as null, or the booleans true or false have been turned into strings "null", "true", "false" when used in component settings. As a result, they could not be used for conditional statements within component configurations. This is now possible offering new possibilities to make a view dependant on user input.

##### SPA 1.29 release 28.04.22

Pinned selections

You can now set a default filter in Studio Analysis that is applied for all users every time they open the analysis. Selections can be pinned in edit mode using the Pin Selection toggle which appears in both the dropdown and full screen versions of the selection UI. This can be used to limit the scope of the analysis to data relevant to end users, bringing the functionality of the Publish with selections feature from Process Analytics to Studio. For more information, see Pinned Selections.

Bug fixes

1. The load script information in the documentation generated from CPM4-migrated analyses has been corrected.

2. Fill components did not render properly if the loading process was interrupted by leaving the browser tab. This no longer happens.

3. In some cases, the automatic vertical axis range for a chart with stacked KPIs would be too small, resulting in truncated data. The range is now calculated correctly.

4. A minor visual bug in charts with horizontal scrolling was fixed.

5. Searching an OLAP column of strings for \ (blackslash) or ' (single quote) produced an error in the OLAP that would persist until the page was refreshed. The search function now works as intended for these characters.

.

Table infinite scrolling

Infinite scrolling lets you view all your data without needing pagination. Data is continuously loaded as you scroll through the table. This is enabled in all new tables by default.

To enable this in existing tables, remove the "Show Pagination" selection in the Visual Editor.

Separate pagination and display limit configuration in tables

The limit field was previously set a limit or page size (depending on if pagination was enabled).

This process has been cleaned-up by introducing two new fields:

1. Display Limit: If enabled, this field will limit the total number of rows displayed in the table.

2. Show Pagination: If enabled, you can define the number of rows that will be displayed per page. If this is not enabled, there will be no pagination in the table and only infinite scroll will be used.

Empty row issue fixed in table

“Hide empty rows” will no longer be a configuration and will be always set to “true” to prevent empty rows from displaying with scroll in the tables.

In the past, this configuration was used to maintain the table height when applying view filters.

However, this will no longer be needed with the following changes:

1. When pagination is enabled the default table height will always be based on the number of rows set per page (or defined container height) and will not change as the table is filtered.

2. When pagination is not enabled and infinite scroll is used, the table height will by default adjust in height as it is being filtered. You can define a container height in the layout if you wish to keep this height from changing.

Inline editing for Date type attributes

In-line editing can be used for "Date" type attributes.

Sticky header configuration deprecated and set to true in all tables

The sticky header configuration will be removed from the YAML and will by default be set to "True" in all tables. This configuration has not been functioning correctly for several months so there will be no change in behavior for any users.  Currently, all tables already have sticky headers enabled and will continue to have these enabled.

Comment Component Visual Editor

The comment's component can now be made with a visual editor.

You can now save time by quickly jumping to the Base Knowledge Model your KM extends from with just one click!  Now every Knowledge Model Extension will have a button redirecting to its Base Knowledge Model.

### Note

This release features several table usability enhancements.

Column Hover Over Help Text

Help text will now automatically display for each column header on-hover. This text will be populated from the Knowledge Model description field for both Attributes and KPIs.

Populate this help text by filling out the "Description" field in the Knowledge Model editor.

Column Resizing

Users can now manually resize columns in the table to quickly customize the width to their preference. Any resizing changes will be saved in a user's preferences. This means that if one user resizes columns, these changes will not affect another user's table.

Column Sizing Configuration

Two new configurations have been introduced into the table visual editor that enable users to adjust the column size and resizing method.

Expand to fit content: Columns will expand to show all column header and cell content using a horizontal scroll, if required. As columns are resized the table width will expand/condense based on adjusted columns.

Fit to table width: Columns will be equally spaced to fit in defined table width. The table width will not change even as columns are resized.

Line-Break Configurations

Line-break configurations are added into visual editors for both headers and within the cells.

Visual Editors for Actions

Easily build automations by integrating existing Skills to your Views with the NEW Visual Editor for Actions.

• Faster Skill Connection: Easily connect existing Skills to your Actions and quickly specify the Attributes you want to pass through your Skill Inputs. The Record your Attributes belong to will be automatically connected to the Action.

• Easier Filter Addition: Use the PQL Editor to quickly specify in which situations the Action will be available for users by creating a Filter statement.

• Streamlined Button Creation: Quickly design the button to trigger your Action using the Button Visual Settings.

Connect Flags to KPIs Using Visual Editors

Quickly connect Flags to KPIs impacted by the Flags added to your data to add these to the Execution Gaps Component.

• Streamlined Flag Creation: Easily monitor unwanted behaviour in the data by creating a new Flag Statement using the PQL Editor. Quickly see if the Flag impacts the data by looking at how many rows have been flagged on the Record.

• Easy Flag Impact Recognition:  Easily identify the impact the Flags have over the data by adding different KPIs to the Impacted KPIs list and seeing how they interact with the Flag.

Improvements

1. The PQL editor preview now shows the common table of the PQL query. The common table is important because only tables sharing a common table can be joined and the results of a KPI may depend on the common table. For more information, see Join Functionality.

2. For design consistency, PQL documentation is now accessed from the PQL editor by clicking ; this replaces the former toggle.

3. The wording for the settings Allow bpmn export of the process explorer and Show filter UI on published version was updated.

Bug fixes

1. The sorting buttons in the Throughput times section of Process Overview had no effect. The buttons now sort by slowest/fastest as intended.

2. Previously, renaming a bookmark highlighted it in the bookmarks menu. This no longer happens.

Waterfall is getting a visual editor!

Waterfall is joining the new visual editing experience.

Visual editors are the default way to edit and create both components; you can also switch between the Visual Editor and YAML editor.

New look and feel for visual editor for Charts

We've improved the visual editor for Charts. You can now easily control and manage chart settings with Chart layers.

Process Explorer with a pre-configured event log

We now provide the Process Explorer pre-configured, based on the first event log defined in your Knowledge Model. You can easily add the component to your Views and start getting insights without requiring initial configuration.

Improvements

A new option is null has been added to the color threshold dropdown of the color mapping editor. This lets users define color mappings based on null values of the dimension or series.

Bug fixes

1. When switching the order of KPIs in a line chart, the KPI names were not reordered in the hover legend unless the component was refreshed. The hover legend now adjusts immediately.

2. A minor visual bug in the sticky Violations header of the conformance checker was fixed.

###### Knowledge Model Updates: PQL Editor Dark Mode

Rest your eyes and save energy on your device with the new PQL Editor Dark Mode. PQL Editors for Knowledge Model Objects are now shown by default in dark mode.

Improvements

1. Pagination has been introduced for conformance checker violations. This prevents the browser from slowing down or crashing in cases where there are a large number of violations.

2. The descriptions of each action in the info message found in the button component settings have been revised to be more detailed and accurate.

Bug fixes

1. For histograms, coloring mappings based on dimension did not apply to buckets covering a range of values, only to buckets consisting of a single value. The bucket is now colored if it lies entirely within the user provided threshold. For example, the histogram on the right has the color mapping: green if less than or equals 10 and red if greater than 10.

2. Process explorer/variant explorer KPI:

1. It was not possible to provide different units for more than one Variant explorer connection KPI. The unit labeling now works as intended.

2. The option to format all KPIs according to one of the formulas did not work, so it has been temporarily removed to avoid confusion. The feature will be reinstated in a future release.

Active Data Model Variable Selection

Know more swiftly and easily the origin of the data you are using. Quickly identify the active Data Model Variable in your Knowledge Model by looking at the highlighted Data Model Key in the Data Model variable chooser.

###### Referencing of KPIs within the KNowlege Model becomes case-sensitive

After the release, the referencing of KPIs becomes case-sensitive everywhere the KPI Id is referenced. The change only applies to the usage of KPI(...) within Knowledge Models, so the referencing of a KPI Id within the same Knowledge Model (see examples below).

In all other cases, the behavior when referencing a KPI Id was already case-sensitive before (for example in the Table or the Attribute List components in Views).

Examples where this change has no impact at all:

1. IDs of KPIs have been copy-pasted or written exactly in the same way (as in their Knowledge Model definition) wherever they have been referenced.

2. All KPIs always have been defined and referenced with fully capitalized IDs.

Example where this change has an impact:

In the Knowledge Model, there is a KPI which is defined by the ID "StrAnGe_WAY_toWriteanID"

If you reference this KPI within the Knowledge Model as "KPI(STRANGE_WAY_TOWRITEANID)", it will fail. This can impact tables and other components relying on this reference.

Checking a Knowledge Model for incorrect KPI references

The following script can be used in the Machine Learning workbench to check your Knowledge Model for wrongly referenced KPIs. However, for smaller Knowledge Models without many KPIs it also can be looked up manually.

CHECK

###### Visual editor for variables update

Work more easily with variables and leverage the visual editor for them. The editor makes it easier to create new Variables with only a few clicks and no need to go into YAML.

To enhance the editor and secure the work, the deletion of a variable must now be confirmed, after clicking on delete within the visual editor.

Additionally tooltips are shown when hovering over the icons for edit and delete.

Table Virtual Scrolling

Virtual scrolling was implement to increase the table's performance by decreasing the load time. It does this by only rendering the rows/columns that are initially display and then loading the data and you scroll to view it. There should be no impact on how you interact with or use the table.

###### Copy query to new clipboard

Users can now copy the complete backend query for OLAP tables and KPI components (Gauge, Fill, Number Radial) from the context menu in edit mode, or from the icon menu in preview mode. Analysis load scripts, hidden columns and selections are not copied.

Copy query is available for the following components:

• KPI (Gauge, Fill, Number, Radial)

Quickly copy PQL statements to use in other components without having to go to the PQL editor.

• OLAP table

Example

FILTER "LFA1"."NAME1" IS NOT NULL, TABLE ( "LFA1"."NAME1" AS "Vendor", KPI("First Time Right Ratio") AS "FTR Ratio" FORMAT "%" ) ORDER BY KPI("First Time Right Ratio") DESC NOLIMIT;

COMING SOON! Reuse the data in the table in Action Flows by pasting the query into the Query Data module.

Bug fixes

1. Setting an activity table other than the default as the custom dimension in the conformance checker returned NaN or 0. This use case now works as intended.

2. The word "Events" has been removed from Steps per case in the conformance checker in order to match the overview.

###### Visual Editor for Augmented Attributes

Quickly and easily store additional information on top of your existing data with the implementation of the Visual Editors for Augmented Attributes! These allow users to:

• Create Augmented Attributes with a few Clicks: Easily create and customize Augmented Attributes inside the Visual Editor for Records. Define their name, data type, and values with just a few clicks.

• Easily Add Augmented Attributes To Your View Components: Quickly add Augmented Attributes to your View Components from within your View. Easily modify or create new Augmented Attributes altogether while you build your View Components.

• Update Augmented Attribute Values with a Few Clicks: Use the inline editing feature to update the value of your Augmented Attributes as needed.

###### Visual Editor for Flags

Define and identify execution gaps and anomalies in your data with the implementation of the Visual Editors for Flags! These allow users to easily create and customize Flags inside the Knowledge Model, through the Visual Editor for Records. Quickly define the conditions they will evaluate using the PQL Editor!

###### Use Identifiers in Views

Users can now use the identifier inside components within Views! The identifier is now usable as an attribute.

###### Revert Knowledge Model Objects to their Base State in Views

Users are now able to see how Objects in Knowledge Model Extensions differ from their Base State and revert these Objects from inside the Views

Bug fixes

1. If the user deleted an image from the settings but kept the image component in the analysis, the image component would become transparent and an undefined error pop-up would briefly appear. There will no longer be any error pop-up shown. Instead, there will be a placeholder image and warning on the image component itself.

2. Sheets excluded from publishing are now grey in Studio Preview to distinguish them from non-excluded sheets.

3. Members were able to change the columns used for Conformance RCA. The PI configuration link is now hidden from Apps.

4. In rare cases, the filter icons would get hidden behind other components. This no longer happens.

5. The decimal separator for Spanish and French has been corrected.

6. Pie/donut chart labels sometimes got cropped out when there were many slices. The size of the chart now better adjusts to fit all labels.

7. Hidden activities in the Process Explorer/Variant Explorer will be saved with bookmarks going forward. Bookmarks created before this release will not change.

8."Percent" is now correctly translated to "Prozent" for German users.

###### Sankey and Treemap are getting a visual editor!

Both components are joining the new visual editing experience.

Visual editors are the default way to edit and create both components, nevertheless, it is still possible to switch between the visual editor and YAML editor.

###### Custom KPI formatting is now supported on Process Explorer

Formatting of custom KPIs is now possible.

With it, you can add custom units and how the KPI is being visualized.

###### Knowledge Model Objects Release 22.12.21

New Studio features for the personalisation of the business logic within Knowledge Models!

Implementation of Internal Note in Knowledge Model Objects

Studio now allows users to provide comments to their Knowledge Model objects in the Visual Editors with the addition of the Internal Note field. This gives users the space to add additional information about the object as needed.

Use of Variables within PQL statements

Reuse and make the business logic inside your Studio Knowledge Model more flexible by using variables, runtime variables and parameters inside your PQL statements:

NEW Autosuggestions inside the PQL field: The PQL field inside Knowledge Models now suggests possible variables and runtime variables to include as part of the PQL statement.

NEW Suggested variables and runtime variables inside the PQL editor: Implement existing variables and runtime variables within your PQL statements with just a few clicks! Existing variables and runtime variables are now listed under the 'Variable" category within the PQL editor and can be added to PQL statements with just one click.

###### Several View components have been made more accessible for all users

Table and KPI List are now accessible via keyboard

Elements in KPI List and Table are now accessible and focusable via Keyboard. Use the TAB key to navigate through all elements. Actions (filter, select, sort, etc.) can be performed on the element in focus by selecting ENTER.

###### Aria Labels and Titles added to several components

Aria labels and titles have been added to several elements within the table and KPI bowler to enable users with accessibility screen readers to more easily navigate their views.

###### Table cell remains focused after opening profile views

After opening profile views from a table cell, the cell will remain in focus after closing the profile view.

###### Sheet copy-paste functionality

It is now possible to copy an entire sheet from one Analysis to another in Studio. When right clicking on a sheet tab in the bottom bar, the options Copy Sheet to Clipboard and Paste Sheet appear in the context menu. In contrast to copying components, copying the sheet will keep the position of each component on the sheet the same. Sheets can be copied across analyses, packages, and spaces, but not teams.

• What is copied: Components and their settings, sheet format, sheet filter.

• What is NOT copied: Saved formula and variable definitions, analysis filter, selection filters, image uploads, bookmarks.

###### Bug fixes
1. The Open Document button action was always bringing the user to a blank console. The button action now works as intended.

2. In certain cases, hover tooltips would remain on the screen after switching to a different asset. The tooltip now always disappears upon switching to a different asset.

Studio now allows users to revert changes in the definitions of their Knowledge Model (KM) Extensions objects to the version of the same object in the KM Base, in case users want to return an object in their KM Extension to its original base version.

### Tip

With this feature:

- Users can identify from inside the KM whether an object definition in a KM Extension is different from the definition of the same object in its KM Base. Users are also able to see exactly in what way these objects are different.

- Users can revert an overwritten object to its base state from within the object in the KM Extension. This gives users the opportunity to return individual parts of their KM Extension to their original base state with just a few clicks.

###### Visual components are now accessible via keyboard

Elements in Bar Charts, Scatterplots, Waterfall Charts, and World Map are accessible and focusable via Keyboard.

Additionally, the tooltip is displayed once these elements are focused.

Use the TAB key to navigate through elements.

###### World map countries and zoom controls are now accessible via keyboard

World Map countries are accessible and focusable via Keyboard. A tooltip is displayed once these elements are focused, and after pressing ENTER a filter is applied.

###### Table Column Filtering and Search

Users can now search and filter within the table columns themselves . Please note, that this is currently limited to STRING data types.

###### Text Box Component Visual Editor

The Text Box component can now also be built using Visual Editors.

Visual Editors are now available for the following View components:

• Table

• KPI List

• Chart

• Process Explorer

• Dropdown List

• Attribute List

• Network Explorer

• Worldmap

• Quick Filters

• Button List

• Textbox

###### Conformance custom dimension

Users can now provide a custom dimension in the conformance checker to measure the conformance of a column other than the default activity column.

Available in edit mode of Analysis in both Process Analytics and Studio...

• ...in the options menu of an existing sheet. Allow listed violations, KPIs and the process model will remain unchanged.

• ...in a new sheet, when Mine the target process is selected during setup.

###### Conformance custom dimension

Users can now provide a custom dimension in the conformance checker to measure conformance of a column other than the default activity column.

Available in edit mode of Analysis in both Process Analytics and Studio...

• ...in the options menu of an existing sheet. Allow listed violations, KPIs, and the process model will remain unchanged.

• ...in a new sheet, when Mine the target process is selected during setup.

##### Studio Release 02.11.21
###### Button List component Block & Size configurations moved to general component settings

Previously, the block & size configuration options were listed as a per button configuration option. To keep consistency in the component, these settings will be moved to the general component settings. The Block configuration was also renamed to "Orientation" to keep consistency with other components.

### Note

Both configuration changes are backward compatible. This means that the view will still work with per button configurations at the moment but will show as deprecated configurations. These will eventually also be removed so everyone is encouraged to move these over as soon as possible. If you make any changes in the visual editor this will be added into the new general configurations and will override any per button configurations your component may still have.

Old Method

New Method

id: button-list-d732900e-050f-42c8-816f-b680617262a8
type: button-list
settings:
buttons:
- label: new button
variant: neutral
size: small
id: 318e235f-f161-4187-a45e-39c6f175b58e
order: 100
block: false
- label: new button
variant: neutral
size: small
id: 74e2877a-590f-4c91-979d-13c4a7e3a5e0
order: 200
block: false
id: button-list-d732900e-050f-42c8-816f-b680617262a8
type: button-list
settings:
buttons:
- label: new button
variant: neutral
id: 318e235f-f161-4187-a45e-39c6f175b58e
order: 100
- label: new button
variant: neutral
id: 74e2877a-590f-4c91-979d-13c4a7e3a5e0
order: 200
orientation: vertical
size: small
###### Quick-Filter and Button List Component Visual Editors

The Quick-Filter and Button List components can now also be built using visual editors.

Visual Editors are now available for the following View components:

• Table

• KPI List

• Chart

• Process Explorer

• Dropdown List

• Attribute List

• Network Explorer

• Worldmap

• Quick-Filters

• Button List

Button List Visual Editor

Quick Filters Visual Editor

For the components that currently can't be built using the Visual Editing Experience, YAML can still be used. Find out more about YAML in the documentation or in the Academy Training "App Creator".

###### Table OnClick Configuration Enhancements

Users can now link both Profile Views & Views within the table component. For both you can define the following configurations:

• Carry Filters: Defines if filters should be carried from the current view to the linked view. This will apply to all filters applied to the view (i.e. applied from dropdowns, quick-filters, charts, etc.)

• Carry Selections: Defines if table selections should be carried from the current view to the linked view. This should only be enabled if both your current and linked views contain table components.

• Variables: Defines a variable(s) in the view that should be carried over to the linked view. Previously, only the selected value could be carried to the profile view, now any additional variable information can also be carried (e.g. any href attribute)

The profile view configuration method was updated in YAML to better align with the new open view feature. We encourage everyone to migrate to the new structure, but the YAML will remain backward compatible with the old structure. If you wish to use the additional configurations mention above, you will need to first update to the new YAML structure.

### Note

If you update the view and/or profile view link within the visual editor (i.e. update filters, selections, variables settings) , your configuration will automatically be updated to the structure in YAML.

Old Method

New Method

onClick:
LinkToRecordProfile
onClick:
openView:
openInSideOverlay: true
carryFilters: true
carrySelections: true
variables:
value: "5"
profileView: true
###### While it is encouraged to utilize the table visual editor, you can now link views or profile views using the following methods:

Link view or profile view through table visual editor

id: table-a721dcbf-955a-4f45-a2b8-b0c69d7effa4
type: table
settings:
data:
columns:
- field: ORDERS.COUNTRY
id: 3efc2c85-41e2-4954-a330-c000c8257cbd
order: 100
onClick:
openView:
openInSideOverlay: true
viewKey: testprofileview-copy
carryFilters: true
carrySelections: true
variables:
value: "5"
- field: ORDERS.CUSTOMER_ID
id: 04aa4e7f-7ff3-422f-873f-42b2320a9907
order: 200
- field: ORDERS.CUSTOMER_NAME
id: 3a421c18-ce0d-456d-93e1-8c3cfb66892c
order: 300
onClick:
openView:
openInSideOverlay: true
carryFilters: true
carrySelections: true
variables:
value: "5"
profileView: true
###### Table OnEdit Changes

You now have the ability to trigger the following actions when editing cells within your table:

1. Update Augmented Attributes (In-Line Editing)

2. Execute a skill when table value is changed

###### In-Line Editing

You can now easily use the in-line editing feature for all augmented attributes without needing to set up a skill beforehand. You can set this up for augmented attributes in YAML or the table visual editor.

### Note

You will need to first configure/display your augmented attributes in the table using "<Record ID>.AUGMENTED_<Augmented Attribute ID>". Additional information on Augmented Attributes can be found here.

Visual Editor

YAML

data:
columns:
...
...
- field: PIZZA.TYPE
id: df08a98d-812d-4008-ae80-583375530f0e
order: 400
- field: PIZZA.SIZE
id: 3730ffb3-9e5b-40c2-85cc-f3d1c852e6d4
order: 500
- field: PIZZA.AUGMENTED_CATEGORY
order: 600
- field: PIZZA.AUGMENTED_COMMENT
id: c41d4c95-933d-47b3-81e7-256b2b1a50b9
order: 700
onEdit:
updateAugmentedAttribute: true
###### Execute a skill

You can trigger skills to be executed when any augmented attribute is updated in the table. To use the inputs within the skill, you can set up a manual sensor as shown below:

Step

Details

Setup

Final Setup

Create a manual sensor

Create a manual sensor with the following inputs

NEW_VALUE

IDENTIFIER

###### Release Notes of the Visual Editing Experience

Building powerful Apps in Celonis Studio was never easier!

###### What’s new

The Celonis Studio Visual Editing Experience is now live! With the big release of the Visual Editors, we enable you to make changes to your Studio package with a couple of clicks! Now you can edit your KPIs on the fly while configuring a table.

Simply switch to the Visual Editor and experience the new powerful capabilities!

### Note

Currently, not all View components and Knowledge Model objects configured in YAML can be edited in the Visual Editor. However, the number of components will be steadily increased.

###### [1] View edit mode - What you see is what you get!

Our Visual Editing Experience allows you to use Visual Editors, so you can always see what you are currently building on your Views!

Visual editing in Views consists of:

• A fast and intuitive way of creating layouts through point and click.

• Visual experience for views metadata.

• Visual View-filter configuration

• Visual editing for embedded Views

What you see is what you get! Create layouts through point and click!

Easily switch between the Code Editor and the Visual Editor.

###### [2] Visual Editors for our most important View components

From now on the components such as Table, KPI List, Chart, and many more can be built using the Visual Editors. The Visual Editing Experience guides you through the component configuration process.

Visual Editors are now available for the following View components:

• Table

• KPI List

• Chart

• Process Explorer

• Dropdown List

• Attribute List

• Network Explorer

• Worldmap

For the components that currently can't be built using the Visual Editing Experience, YAML can still be used. Find out more about YAML in the documentation or in the Academy Training "App Creator".

Find the YAML Documentation here.

Simply create a new chart using the Visual Editor.

###### [3] Visual editing and a new Interface for the Knowledge Model

Create Knowledge Model objects with ease - without YAML! Explore the new interface for the Knowledge Model. Additionally, components like KPIs can simply be edited from within the new KPI Editor.

Visual editing for the Knowledge Model consists of:

• Browsing and managing Knowledge Model objects from within Views.

• Other objects are editable via YAML

We introduce a new interface for the Knowledge Model with the Visual Editor.

Edit a KPI within the Visual Editor.

Browse and manage Knowledge Models from within Views.

###### Improved E2E Workflows:
• Not only can you use the visual interface to configure individual components, but you can also bring the different assets of your app closer together

• Create KM objects on the fly, reducing the time building through blended edit flows

• Visual Editors reduce the need to rely on documentation through built-in guidance

###### Known Issues

In the following section we describe known issues with the release, as well as how to work around them:

Object

Issue

Workaround

Expected Resolution Date

Dropdown Component

Custom Objects are currently not displayed in the Visual Editor data selector.

Nov. 5th, 2021

Empty Preview State

The empty state preview window for some View components is currently broken.

This has no effect on creating or editing your component, and the preview will display correctly once you have defined the component's data. No workaround is necessary.

Nov. 5th, 2021

Chart Auto Height

When using auto-height on the View section, the legend of a chart may overlap the axis.

Set a fixed height for the layout section or column.

Nov. 5th, 2021

###### Adding new field "internalNote" to KM objects for YAML Documentation

There is a new field introduced to KM objects called internalNote. It is currently accessible via the YAML Editor and is designed for internal usage only.

It will allow developers to insert documentation for each KM object.

### Note

In preparation for the Visual Editing Experience Release on October 26th 2021 it is mandatory and important to copy all existing comments in YAML to the new internal Note section in corresponding KM objects. After October 26th comments in YAML (starting with a # ) are no longer supported and all existing comments will automatically be deleted.

Example KPI configuration

kpis:
- id: _open_invoices
displayName: "# Open Invoices"
description: Open Invoices
internalNote: This is my documentation for complicated things which is not visible to business users.
pql: COUNT(DISTINCT "RSEG"."_CASE_KEY")


###### Pie Chart Component having decimals in percentage value

In the Pie Chart Component of Studio Analysis, it is now possible to display decimals in percentage values in order to have consistent values in different components such as a Single KPI Component.

###### Table inline editing

Users can now use in-line editing for any augmented attributes in the new table component.

Setup steps

1. Create an augmented attribute using the steps defined here.

2. In the Table's Visual Editor, add the newly created augmented attribute into the Table component.

3. Open the attribute's settings, by clicking on the Augmented Attribute within the selected data list. Within the "On Edit" settings, select "Update Augmented Attribute".

Corresponding YAML configuration

id: table1-c124731f-480a-49f8-b72e-2fc5f26dcd30
type: table
settings:
data:
columns:
- field: ORDERS.augmentedattribute_example
id: 53fc5dbe-971d-4147-9d02-996c57d4577d
order: 100
onEdit:
updateAugmentedAttribute:true
###### Table Multi-Column Sorting

Multi-sorting will automatically be available to use within the table. The sorting can be applied using the sort arrows at the top of each column. Multi-sorting can be used by selecting the arrows in the order you would like to sort.

### Note

Sorting is not currently available for augmented attributes.

###### Table Scroll Reset During Pagination

Users will now be taken back to the top of the table when navigating between table pages.

###### Table Sort ID Added to Support Extension Views

The "SortBy" configuration will now support an ID configuration to allow users to edit/remove the sort within any extension view.

Example

Table base code:

settings:
data:
sortBy:
- field: REC.ATTR
direction: ASC
id: SMTH
order: 1
scope: HIDDEN
- field: ....

Possible extension changes

1. Set the scope to "Hidden" to allow users to remove this sort in the extension.

settings:
data:
sortBy:
- field: REC.ATTR
direction: ASC
id: SMTH
order: 1
scope: HIDDEN
- field: ....
2. Edit the direction of the sort in the extension.

settings:
data:
sortBy:
- field: REC.ATTR
direction: DESC
id: SMTH
order: 1
- field: ....

###### UPDATE

Process Explorer: Custom KPIs

###### Deprecation Notice

The process explorer configuration is deprecated as of this release. We will stop supporting this configuration until 31.10.2021, so your components will still work up until that date. We encourage you to update your components as soon as possible, you can read up on the migration guide here.

Event Log Automerge

Global Filters

###### Package Types will be removed both from Studio and Store

Package Types will be removed from both Studio and Store

Section-Title and Single KPI List Components will be deleted

The Section-Title and Single KPI List components have been fully removed from the code base and will no longer be available within the studio. These components were already deprecated and not actively being supported so no change should be required for users.

###### Activities and Edges pop-up

Clicking on activities or edges will now prompt a pop-up. This pop-up contains specific information of the selected activity or edge and also allows for custom filtering scoped to each selection.

When adding multiple filters, each filter gets added on top of the last one.

###### Option to show all connections

Useful for cases when it is required to show loops that otherwise would only appear after increasing activities.

Option showAllConnections allows users to show all possible connections of the first variant by default.

type: process-explorer
settings:
name: MEL Loops
showAllConnections: true
eventLogs:
- ACTIVITYTWO.FINDINGS
###### User states

Process Explorer now saves the state of the sliders and collapsed event logs even after reloading the page.

In addition, the state of the sliders will remain after filters are applied.

###### Hovering on the activity name

In cases where the activity name exceeds the available size, we enabled the full visualization of it when hovering with the mouse.

###### Profile View

Node pop-up now includes an Open details button which opens a Profile View that the user can configure.

Virtual nodes (start and end) have both a new format and design that intends to make it easier to tell them apart from activity nodes and reduce redundancy.

Depending on the number of event logs being shown on the process explorer the formatting will vary:

One event log:

1. Start nodes will be named: Start.

2. End nodes will be named: End.

Multiple event logs:

1. Start nodes will be named: Start: [Activity Name]

2. End nodes will be named: End: [Activity Name]

###### Bug fix: Axis in Charts always start from zero

Charts are enabling again the configuration of the initial and final value of an axis,

Before the bugfix, the axis always started from zero.

It can be done with the encoding options [domain] and [zeroBased].

 encodings:
y:
field: FIELD_Y
domain:
- 3
- 20
zeroBased: false

The order in the metadata of a view will be removed this did not have any functionality for a year and will now be cleaned up from the YAML suggestions and validations. Please simply remove it from your metadata.

###### New Component Editor Slide In

In preparation for the upcoming new visual editors, we are changing how the Component Editor looks. It will now slide in from the side when opening in edit mode by clicking on a component.

###### Now possible to use variables in the view title

You can now use variables in a view title. This allows you for example to show the Invoice ID on the profile view of the invoice.

Simply use the value like shown below in the name of the view:

View Configuration

metadata:
key: invoice-details
template: false
name: Invoice Details {id} knowledgeModelKey: ap-operational-knowledge-model-sap-only knowledgeObjectId: INVOICE profileView: true variables: - name: id defaultValue: 564255d type: string The variables even update when the variable changes within a given view. ###### Warning for comments in view Due to technical reasons, comments are not supported in view YAML configurations. We now additionally show a warning message if comments are used in the YAML. ###### KPI-List Sorting Configuration KPI list configuration options added that will allow users to define the method and direction of how the KPIs are sorted within the KPI-list component. - id: kpi-list-styling type: kpi-list settings: options: sortBy: value #name, order #Defines the sort method. Optional. Default value: order (KPI order that is defined in the individual KPI options). sortDirection: DESC #ASC #Defines the sort order. Optional. Default value: ASC. data: kpis: - kpi: TOTAL_NUMBER_OF_INVOICES_2 show: true order: 1 ###### Version Control for Studio Analysis We are excited to introduce Version Control capability for the Analysis asset in Studio. ###### Hide Views and Analyses from the published Package in Apps You can now define the visibility (shown, hidden) of assets in the published packages while continuing to include them in the published package. This functionality is useful when • you are working on an analysis or a view that is not ready to be used by the business users, which you however want to include in the published versions to create a proper package version history • when you want to remove a view or an analysis from Apps which was published • when you want to remove a package from Apps which was published in the past How it works There are two options on how to hide/unhide assets • Via the context menu of the view or analysis 2. On the package settings in the tab Apps Perspective For the setting to take action, the package has to be published. ###### Gridlines, position and target lines ###### Gridlines From now on charts will have gridlines enabled by default. The option to disable it is available: encodings: x: field: [FIELD] axis: grid: false id: chart type: chart settings: limit: 1000 name: Risk Scatterplot interactions: selection: true tooltip: false showLegend: true encodings: x: field: RISKSCATTER.LIKELIHOOD axis: grid: false y: field: RISKSCATTER.IMPACT visuals: - mark: type: point labels: true ###### Position & Target Lines Position lines are available, together with the option to disable target lines. ###### Target Lines Assuming one of the kpis has a defined target on the knowledge model, the following yaml will show a target line: YAML configuration settings: encodings: x: field: KPI y: field: KPI2  On the other side, if this target line needs to be hidden, it can be done by: YAML configuration settings: encodings: x: field: KPI kpiTargets: false y: field: KPI2 ###### Position Lines Position lines can be defined. As well as its format and color. id: longLabels type: chart settings: name: Simple Bar chart showLegend: false encodings: x: field: RISKSCATTER.RISK visuals: - mark: type: bar encodings: y: title: Likelihood field: AVG_RISKSCATTER_LIKELIHOOD kpiTargets: false - mark: type: rule labels: true color: BLUE_50 style: solid encodings: y: datum: AVG_RISKSCATTER_LIKELIHOOD More information can be found in our documentation. ###### Beta: Visual Layout Editor for Views The time has come - we are surpassing the text-only configuration for the views and introducing a new Visual Layout Editor. Here is a video of how to build and set up a layout (using existing, predefined components from the view) You can always go back to using the YAML only way of creating the Layout but please give us feedback on how you like the new editor. ###### Call to action for view creators: Layout changes To allow for the visual layout we had to introduce how the layout works. If our team has not been in contact with you yet, please check the following: • Do you have columns in a row that have a summed size of more than one? Please make sure to put the overflowing columns in their own row (as they are displayed currently) before the release. layout: - rows: - columns: - id: a size: 1/2 - id: b size: 1/2 - id: c size: 1/2 • Do you have a grow-height: true within a tab, but not on the parent (the column including the tab)? → add the grow height on parent level and remove from within the tab • Try not to use layouts in columns when it is not needed (like having one component in a column but still having that component wrapped in an inner layout (new term: inner section)) • Make sure you have an explicit order defined. If not, the view layout might be displayed in one or the other way. (only problematic in very few cases) ###### Display timestamps in UTC and not browser timezone Fixed the timestamps are displayed in UTC and no longer in the browser timezone. With this Studio and Process Analytics reporting is fully aligned. ###### Support only record.attribute and no longer record_attribute With this release, we are no longer going to support "record_attribute" but only "record.attribute". This change was announced several weeks back and gave you enough time to migrate your views. ###### Content-cli - pull package draft We have included a new content-cli command which allows you to pull the package draft. Until now, it was only possible to pull the published version of the package. // Pull draft version of package content-cli pull package --profile my-profile-name --key ap-operational-app --draft This command is included in the content-cli version 0.1.2, find the documentation at https://github.com/celonis/content-cli ###### Hide Views and Analyses from the published Package in Apps You can now define the visibility (shown, hidden) of assets in the published packages while continuing to include them in the published package. This functionality is useful when • you are working on an analysis or a view that is not ready to be used by the business users, which you however want to include in the published versions to create a proper package version history • when you want to remove a view or an analysis from Apps which was published • when you want to remove a package from Apps which was published in the past How it works There are 2 options on how to hide/unhide assets • Via the context menu of the view or analysis 2. On the package settings in the tab Apps Perspective For the setting to take action, the package has to be published. ###### Order change of the EMS Services in the Navigation Bar/Toolbar Starting from 17th of June 2021, we are changing the default order of the services in the EMS navigation bar. Today, Process Analytics is in the first position in the EMS navigation bar, Apps and Studio are on 6 and 7. See screenshot below: From 06/17/2021, the new order will be 1. Apps, 2. Studio, 3. Process Analytics, …(the rest follows as before): This change will make the Apps service the default landing page. This change does not affect users who have already set a custom order in their team. If you wish to change the order for yourself, you can do so by customizing the Toolbar. ###### Overflow and alignment configuration for dropdown and kpi-list component As we have already added the overflow and alignment configuration options for the quick filter components we are now adding it to two more components: dropdown-list and kpi-list component. Dropdown - View  - id: doropdown-list-styling type: dropdown-list settings: name: Basic Dropdown Bottom Right styles: overflow: line-break #full-width, scroll #Defines the overflow behavior in case there are too many items in the list. Optional. Default value: full-width. position: horizontal: center #right, left, full #Defines the horizontal position of the component within its layout. Optional. Default value: full. vertical: center #top, bottom Defines the vertical position of the component within its layout. Optional. Default value: bottom. data: columns: - order: 100 attribute: ACTIVITY.USERNAME id: 5f66bd61-417d-483b-8e25-a0200d256513 KPI List - View  - id: kpi-list-styling type: kpi-list settings: styles: overflow: line-break #full-width, scroll #Defines the overflow behavior in case there are too many items in the list. Optional. Default value: full-width. position: horizontal: center #right, left, full #Defines the horizontal position of the component within its layout. Optional. Default value: full. vertical: center #top, bottom Defines the vertical position of the component within its layout. Optional. Default value: bottom. data: kpis: - kpi: TOTAL_NUMBER_OF_INVOICES_2 show: true order: 1 ### Important With this change, we also deprecate the old configuration scroll: true There is an automated migration that will migrate to the new schema. ###### Various Execution Gap component improvements ###### Numbers are right aligned All numbers within the Execution Gap component will by default be aligned on the right to keep constituency within the table. There is no configurational change required. Anomalies with 0 occurrences When there are Anomalies with 0 occurrences we now display that the respective impact is 0 as well. ###### Pagination option Pagination was added to the Execution Gap component to help users easily tab through all identified gaps. View Example  - id: anomaly1 type: execution-gap-list settings: kpi:{kpiId}
name: Execution Gaps
columns:
issue:
title: Issue
kpi:
title: ${kpiId} occurrences: title: Invoices sortBy: defaultColumn: impact direction: ASC tableView: true limit: 5 #Defines the limit on how many Execution Gaps should be displayed per page. Optional. Default value: 8 ###### Indicate link only if knowledgeObjectId is defined From now on we will only show the link in the Execution Gap list if the Knowledge Model. KM Example  - id: EANOMALY_HIGH_PROFIT_ORDERS displayName: Orders with a profit higher than 100 dollars description: This Anomaly displays Orders with a profit higher than 100 dollars flag: EFLAG_HIGH_PROFIT_ORDERS kpis: - kpiId: SUM_OF_SALES_EX - kpiId: KPI_AVERAGE_PROCESS_TIME knowledgeObjectId: ORDERS_ANOMALY #Link indication only appears if this object is defined in the KM ###### Hide anomalies with 0 occurrences We have now added the configuration hideEmptyOccurrences, which allows you to hide anomalies with 0 occurrences. This field is optional and by default we display 0 occurrences. View Example  - id: anomaly2 type: execution-gap-list settings: kpi:${kpiId}
name: Execution Gaps
hideEmptyOccurrences: true #Defines if  anomalies with 0 ooccurrences should be displayed . Optional. Default value: false
columns:
issue:
title: Issue
kpi:
title: {kpiId} occurrences: title: Invoices sortBy: defaultColumn: impact direction: ASC tableView: true ###### Change Assignee function in Tasks is highlighted When hovering over the avatar for the current assignee of a Task, it is clearer that users can interact with this user avatar to change the Task Assignee. ###### Introducing package/runtime variables Previously, variables (formerly known as inputs) were restricted to be either within Views or within Knowledge Models, but they could not influence each other. You can now use variables on package level that can even change values in the Knowledge Model on runtime (Without having to publish the package) Use Cases: • Changing values for KPI calculations on a global level. • A Sales Director might want to change the current quarter revenue goal within a view that should be reflected across all views to calculate the revenue gap, etc. ### Note Please don't use variable names with operators like "-", "/", "*" or "+" For more information, see Package runtime Variables. ###### Automatic mobile layout Previously, if you wanted to make a layout work well for mobile, you probably had to define a layout yourself, with columns as broad as possible. Now, when a view is used on mobile, all components are automatically put below each other and will span the full width. Example of a view that is not optimized for mobile: Before: After: ###### Overflow and alignment property for button and quick-filters components You now have full flexibility to ensure that your button and quick-filters are perfectly aligned in your layout by defining overflow and position attributes. ###### Button View  - id: button type: button-list settings: styles: overflow: full-width #Options: line-break, scroll. Defines how the component should overflow if there is not enough space. Default position: #Defines the position of the component. Optional horizontal: left vertical: top name: Open PDF buttons: - label: Open PDF onClick: href: https://test.de openInNewTab: true id: 71f2f99f-bc83-434c-9b85-3e374ccb57f3 order: 100 ###### Quick-filters View  - id: quick-filters type: quick-filters settings: single: true styles: overflow: full-width #Options: line-break, scroll. Defines how the component should overflow if there is not enough space. Default value: full-width position: #Defines the position of the component. Optional horizontal: left vertical: bottom attributeFilters: - attribute: ACTIVITY.USERNAME type: string values: - name: Zoe value: Zoe - name: Fabian value: Fabian ###### User based hide/view configuration for table component Until now the selection of which table column should be shown/hidden was all users the same. Now we store the preferences for each user. This allows users to fully customize their views without affecting their co-workers. ###### Storing the state of dropdown, table, kpi-list after task execution We now store the state of the selected dropdown option, table pagination and sorting, kpi-list selection. Even if the user navigates to a different view and then comes back the selection is still the same. ###### Group by capabilities for table component Now you can analyze KPIs across different attributes by viewing/hiding the different attributes. For this, you simply need to set the table to: distinct: true allowInvisibleColumns: true For more details, please check out the example below. ### Potential pitfalls Ensure that non of the following is activated in the table 1- showing tasks 2- showing alerts 3- having onClick action 4- selectable is enabled (for the whole table) View YAML  - id: table1 type: table settings: name: Test data: columns: - order: 150 field: ORDERS.CUSTOMER_ID id: 149e396e-37ad-4d6b-a877-74fafb14ba88 - field: ORDERS.SUBCATEGORY id: 76c315b2-e140-44f8-ad9c-02146be9bb37 order: 500 - order: 200 field: ORDERS.PRODUCT_NAME id: a29df326-1962-420d-b6ac-90c322edad12 - field: ORDERS.SHIP_MODE id: 35f49dc3-eac0-4939-8d74-5f6ddbbe2e3e order: 600 - order: 300 field: ORDERS.QUANTITY id: eddbd1dc-55c3-4986-a96a-86a09ed3055a - field: SUM_OF_SALES_EX #Reference a KPI id: 3c66dafb-e3ee-4b73-b2e5-526cb52b926f order: 700 limit: 10 distinct: true #Ensure that this configuration is TRUE options: allowInvisibleColumns: true #Ensure that this configuration is TRUE ###### Horizontal and vertical alignment for input-checkbox, input-box components We have added the capability to align the input-checkbox and input-box components vertically and horizontally. View YAML  - id: input-checkbox-unchecked type: input-checkbox settings: styles: #Align the component horizontally and vertically. position: horizontal: right vertical: bottom name: Unchecked label: Activate isChecked: false View YAML  - id: input-box-time type: input-box settings: styles: #Align the component horizontally and vertically. position: horizontal: center vertical: top name: "Input Box: Time ({selectedTime})"
type: time
value: Time-value
onChange:
update:
variables:
- name: selectedTime
###### Set variable on onClick for table component

Now it's possible to update a variable upon clicking in a table. This allows you for example display the details of a specific line item right underneath the table component, instead of opening it in a separate profile view.

View

variables:
- name: demo #Defines demo variable.
defaultValue: demo text
...
components:
- id: table1
type: table
settings:
data:
columns:
- order: 100
field: ORDERS.ORDER_ID
id: 893b4d4a-37e3-400a-af89-13692a9cf2f1
onClick:
- order: 150
field: ORDERS.CATEGORY
onClick:
update:
variables:
- name: demo #Sets demo variable when the user clicks on the row.
- id: text
settings:
name: {demo.ORDER_ID} #Displays the ORDER_ID of the variable demo. ###### Charts updates Screenshot Description Accessibility We introduced a feature that allows users with visual impairments to start working with Charts. Now users that had enabled screen readers on their machines will get a description of a Chart and its elements when the Chart is focused via keyboard or mouse click. Recommended Screen Readers • VoiceOver for Mac • Window's Narrator • Screen Reader extension for Google Chrome Size encoding We introduced a third encoding, size, that might be of use for scatter-plots or bubble charts: type: chart settings: encodings: x ... y ... color ... visuals: - mark: type: point labels: true point: shape: circle width: 10 encodings: size: //<--- Size encoding field: FIELD range: // <--- Size of the bubbles - 0 - 1 domain: - 100 - 1  Before / After Styling We incorporated a few styling changes on charts overall, these include: • Font size for better information hierarchy: • Reduced font size of axis tick labels and legend labels to 11px. • Data labels and axis/legend titles stay at font-size 13px. • Axis: • Titles: • Added vertical or horizontal arrows to axis titles to better indicate which axis they belong to (and to signify that they belong to the axis and not to the legend) • Ticks: • Made all axis ticks visible to better convey where the label belongs to and where the value is located. • If ticks are skipped we reduce the length of them (skipped ticks: 4px long, normal ticks: 6px long; before we had 6px/8px). • Labels: • Improved label rotation when the overlap is detected. • Improved handling of label overflow on-axis edges. • Ensure adequate yet minimal spacing between axis titles and closest axis labels. • Paddings: • Made legend padding minimal. (minimum 4px top padding to axis content above in case a scrollbar is needed at the bottom). • Removed axis title paddings (can lead to overlaps as of now, but will be fixed in follow up). ###### Network Explorer updates • Network Explorer configuration upgrade We are introducing a new configuration for the Network Explorer. Starting from this release nodeKpi and edgeKpi are deprecated attributes. You will need to update your widget configurations to use the new attributes which are now called nodeLabels and edgeLabels respectively. Besides the name change, these two attributes now accept an array of values which can be a KPI or Attribute. For the nodeLabels these attributes will be all listed in the pop-up while for the edges we currently consider only the first one, in the future, we will support showing all the values in the array. We highly suggest updating your configurations to be compatible with the new version because the deprecated configuration will lose support in the not-so-distant future. ### Warning NOTE: nodes is also a required property with the new configuration components: - id: ninja-round-circle type: ninja-explorer settings: ... nodes: MSEG.LINK_SOURCE_REGION Below you can see the two configurations side by side: Deprecated Configuration New Configuration components: - id: ninja-round-circle type: ninja-explorer settings: source: MSEG.LINK_SOURCE_REGION target: MSEG.LINK_TARGET_REGION edgeKpi: kpi: EDGEKPI_TPT displayContentRule: KPI_DISPLAY_RULE nodeKpi: kpi: NODEKPI displayContentRule: KPI_DISPLAY_RULE_VARIATION layout: HIERARCHY nodes: MSEG.LINK_SOURCE_REGION components: - id: ninja-round-circle type: ninja-explorer settings: source: MSEG.LINK_SOURCE_REGION target: MSEG.LINK_TARGET_REGION edgeLabels: - field: EDGEKPI_TPT displayContentRule: KPI_DISPLAY_RULE nodeLabels: - field: NODEKPI displayContentRule: KPI_DISPLAY_RULE_VARIATION layout: HIERARCHY nodes: MSEG.LINK_SOURCE_REGION • Node popup Screenshot Description We Introduced a node popup that opens after the user clicks on a node. The popup contains the available filter options and a list of attributes that belong to the selected node. The list of attributes is populated with the configuration passed in the nodeLabels.  nodeLabels: - field: NODE_ATTR_1 displayContentRule: NODE_DIMENSION_RULE - field: NODE_ATTR_2 - field: NODE_ATTR_3 - field: NODE_ATTR_4 - field: NODE_ATTR_5 NOTE: displayContentRule will only be read from the first node of the list, meaning that if it is defined in any other element at nodeLabels it won't be applied to the node styles. • Popup positioning Usage Description The node popup will be positioned outside of the network explorer's canvas. Meaning that no matter how zoomed in or zoomed out the network is, the popup will always maintain the same size. Some of the default behaviors implemented are: • Open, popup can be opened by: • Clicking on any node. • Close, popup can be closed by: • Clicking on the X button on the top right of the popup. • Clicking outside of the network explorer's canvas. • Pressing the ESC key. • Clicking on another node will close the current popup and open a new one. • Clicking on the same node that opened the popup in the first place. • Positioning • Popup will be positioned left or right of the recently clicked node, depending on the space (this is automatic). • The popup will not go past any of the viewport's boundaries: it won't be hidden at any time. • If the popup is open and the explorer underneath is moved, the popup won't move with the explorer. • The popup will cover any on-screen element if active. • Scroll block: • Scrolling can zoom in and out of the explorer by using the CTRL/CMD key + scrolling, if the popup is open, scroll block is disabled and zooming in and out of the explorer can be done by regular scrolling. ###### Configurable Tooltip Content for Charts A detail encoding can take one more fields to be shown in the Tooltip in addition to the data that is visually shown in the chart (see View YAML below, line 22). View YAML id: ganttChart type: chart settings: name: Gantt Chart v1 interactions: selection: true tooltip: true sortBy: - field: GANTT_ACTIVITIES.START visuals: - mark: type: rect orientation: none encodings: x: field: GANTT_ACTIVITIES.START format: "%d.%m.%y" title: Time x2: GANTT_ACTIVITIES.END color: GANTT_ACTIVITIES.ACTIVITY y: GANTT_ACTIVITIES.ACTIVITY detail: - field: GANTT_ACTIVITIES.milestone - field: GANTT_ACTIVITIES.START title: Custom Start Title format: "%d.%m.%y" Result: ###### Zoom Behaviour Screenshot Description We introduced an unified zoom behavior for world-map, ninja-explorer and process-explorer. This behavior prevents the user from "miss zooming" into the widgets when they are scrolling down in a page. Now users must press ctrl or command + zoom in order to scroll. ###### Charts allow removing footer space reserved for the legend You can now configure if you want to reserve the legend space below the chart or that space can be filled by the charts themselves. This is managed by a new attribute in the config blockFooterSpace which is set to false by default. Before After The current default behavior. To use the before behavior set blockFooterSpace to true. ###### Configuration example id: test type: chart settings: name: Daily Users blockFooterSpace: true # default is false encodings: x: field: USER_STATS__GABI_TEST.TIMESTAMP_Gabi format: "%d.%m.%y" visuals: - mark: type: line point: true encodings: y: field: NUMBER_OF_USERS title: Temperature UPDATE Audit Logs for Studio interactions Introducing Studio spaces ##### SPA 1.29 release 28.04.22 Pinned selections You can now set a default filter in Studio Analysis that is applied for all users every time they open the analysis. Selections can be pinned in edit mode using the Pin Selection toggle which appears in both the dropdown and full screen versions of the selection UI. This can be used to limit the scope of the analysis to data relevant to end users, bringing the functionality of the Publish with selections feature from Process Analytics to Studio. For more information, see Pinned Selections. Bug fixes 1. The load script information in the documentation generated from CPM4-migrated analyses has been corrected. 2. Fill components did not render properly if the loading process was interrupted by leaving the browser tab. This no longer happens. 3. In some cases, the automatic vertical axis range for a chart with stacked KPIs would be too small, resulting in truncated data. The range is now calculated correctly. 4. A minor visual bug in charts with horizontal scrolling was fixed. 5. Searching an OLAP column of strings for \ (blackslash) or ' (single quote) produced an error in the OLAP that would persist until the page was refreshed. The search function now works as intended for these characters. . ###### Added additional href linking option for table component As of now, it was only possible to link a table with a profile view. Now it's also possible to link to any other page and make use of the attributes within the URL. Knowledge Model  - id: HREF_USERNAME displayName: Href Username pql: '''https://www.google.com/?q='' || "PizzaP2P-fixed_xlsx_Sheet_0"."USER_NAME"' #create a new attribute which defines the URL structure. In this example it will create a search query to Google to search by the user name e.g. https://www.google.com?q=Lukas filterIds: [] columnType: string View - id: table type: table settings: data: columns: - field: ACTIVITY.CASEKEY order: 100 id: baffa132-b23a-4470-b2b6-36b069e6f893 onClick: hrefAttribute: ACTIVITY.HREF_USERNAME #Reference the attribute defined in the Knowledge Model openInNewTab: true #Define if the URL should be opened in a new tab or not. Default: false ###### Improved layout for dropdown, search, quick-filter, and time filter component 1. Dropdown, search, quick-filter, and time filter take full width by default. 2. If a style is applied (horizontal alignment) then the component won't take full width of the cell anymore. 3. By default the components are bottom aligned (including KPI list, time filter, and image). 4. If the text inside the quick filter component is too long we will automatically shorten it by "...". Upon hover the full text is still visible: ###### Execution gap component Added forwardFilterToProfileView to configuration: • id: Execution Gap List type: execution-gap-list settings: ... forwardFilterToProfileView: true # Defines wether to forward the blocker as a filter to associated profile views or not. Defaults to false. columns: ... ###### Changed how to send KPI parameters for kpi-list, button-list, text-box, and iframe component KPI parameters used to then be passed as the following ### Important This is a breaking change for which we can't write a migration. Therefore it would be important that you update your views respectively. Current logic  - show: true kpi: SUM_OF_PARAMETER id: bd7e5555-3a36-488a-9849-0f03c6ab17aa order: 100 parameters: - "string value" - 123 New logic  - show: true kpi: SUM_OF_PARAMETER id: bd7e5555-3a36-488a-9849-0f03c6ab17aa order: 100 kpiParams: # parameters is getting renamed into kpiParams - id: columnName # This ID must match KPI parameter ID defined in KM value: "string value" Knowledge Model  - id: SUM_OF_PARAMETER displayName: Sum Of Selected Column customAttributes: active: true pql: SUM("Sample-sales-data-excel_xlsx_Orders"."{p1}") filterIds: [] format: ',.2f' breakdowns: [] aggregations: [] parameters: - id: columnName #Needs to be referenced in the View YAML displayName: name of a column to calculate the sum defaultValue: SALES targets: [] type: KPI ###### Renamed Inputs to Variables With growing capabilities of the EMS Studio we expanded the functionality of "inputs" on views. Also as preparation for upcoming additional improvements, we will rename inputs to variables. We will do a migration for you, so you do not have to change your exiting views. This does not only effect the input definition on root level, but also when defined within components. ###### Examples: ###### Streamlined how we reference Knowledge Model objects from components We are streamlining the pattern on how we reference Knowledge Model objects from components. This will make it easier to quickly set up new component. In the example below you will see the changes more clear: 1. We make it more explicit, which KM objects can be referenced (e.g. attribute or kpi). The YAML structure will be automatically updated with the release. 2. When referencing attribute we now enforce to reference them by <record>.<attribute> and not only <attribute> anymore. The updated pattern is needed to be manually updated by the board owner, since there might be attributes with the same name belonging to different records. ### Important We will grant a grace period of one month until when you need update update your board yaml from <attribute> to <record>.<attribute>. In the meantime we will support both <attribute> and <record>.<attribute> Attribute Current configuration  - id: basic-attribute type: attribute-list settings: data: - id: ACTIVITY.ACTIVITIES #It's not clear what Knowledge Model object can be referenced. Furthermore ID is not necessarily unique within the application order: 100 - id: ACTIVITY.EVENTTIME order: 200  New configuration  - id: basic-attribute type: attribute-list settings: data: - field: ACTIVITY.ACTIVITIES #Now we clearly state, which object is getting referenced. In this example field defines that it can be different data types like a KPI or attribute. id: 100 #Column need to have a unique ID to support base/extension logic order: 100 - field: ACTIVITY.EVENTTIME id: 200 order: 200 Dropdown Current configuration  - id: dropdown1 type: dropdown settings: data: columns: - id: ID #It's not clear what Knowledge Model object can be referenced. Furthermore ID is not necessarily unique within the application order: 100 New configuration  - id: dropdown1 type: dropdown-list #Streamlined the type to indicate that an entire list can be provided settings: data: columns: - attribute: ACTIVITY.ID #Now we clearly state, which object is getting referenced. In this example an attribute. Furthermore the attribute is now getting referenced by <record>.<attribute> id: auto_generated #Column need to have a unique ID to support base/extension logic order: 100 Search Current configuration  - id: basic-search type: global-search settings: search: - USERNAME #It's not clear what Knowledge Model object can be referenced. Furthermore ID is not necessarily unique within the application New configuration  - id: basic-search type: global-search settings: search: - attribute: ACTIVITY.USERNAME #Now we clearly state, which object is getting referenced. In this example an attribute. Furthermore the attribute is now getting referenced by <record>.<attribute> Quick filters Current configuration - id: quick-filters type: quick-filters settings: single: true filters: - JAN16 - APR16 attributeFilters: - attribute: USERNAME type: string values: - name: Zoe value: Zoe - name: Fabian value: Fabian New configuration  - id: quick-filters type: quick-filters settings: single: true filters: - filter: JAN16 #Now we clearly state, which object is getting referenced. In this example a filter object. - filter: APR16 attributeFilters: - attribute: USERNAME #Also RECORD.ATTRIBUTE is possible. type: string values: - name: Zoe value: Zoe - name: Fabian value: Fabian Time filter Current configuration  - id: time-filter type: time-filter settings: data: dateColumn: EVENTTIME New configuration  - id: time-filter type: time-filter settings: dateAttribute: ACTIVITY.EVENTTIME #Now we clearly state that an attribute with the type date needs to be referenced. Table Current configuration  - id: table type: table settings: data: columns: - order: 100 field: ACTIVITY.ID id: fa7b2fe1-d397-4b17-91f8-52d3432aeb35 link:true New configuration  - id: table type: table settings: data: columns: - order: 100 field: ACTIVITY.ID id: fa7b2fe1-d397-4b17-91f8-52d3432aeb35 onClick: linkToRecordProfile: true #Defines if a link to the record profile should be added showInModal: true #Defines if a modal gets opened or a slide in will appear - order: 200 hide: false field: ACTIVITY.CASEKEY id: c2c9a34a-1766-4b26-b3c4-83f395488ac0 Activity History Current configuration  - id: Activity type: activity-history settings: recordMetadataId: ACTIVITY usernameColumn: USERNAME activityColumn: ACTIVITY_NAME New configuration  - id: Activity type: activity-history settings: recordMetadataId: ACTIVITY usernameAttribute: ACTIVITY.USERNAME #Renamed attribute and referencing is done by using record.attribute activityAttribute: ACTIVITY.ACTIVITY_NAME #Renamed attribute and referencing is done by using record.attribute KPI Bowler Current configuration - id: kpi-bowler type: kpi-bowler settings: data: mainDimension: TASK_COUNT_GEN pivotDimension: EVENTTIME firstKpi: AVERAGE_NETWR_CONVERTED secondaryKpis: - AVERAGE_NETWR_CONVERTED - COUNT_TABLE__PIZZAP2P_XLSX_SHEET_0  New configuration - id: kpi-bowler type: kpi-bowler settings: data: mainAttribute: ACTIVITY.TASK_COUNT_GEN #Attribute name indicates to reference attribute and attribute get referenced by record.attribute pivotAttribute: ACTIVITY.EVENTTIME #Attribute name indicates to reference attribute and attribute get referenced by record.attribute firstKpi: AVERAGE_NETWR_CONVERTED secondaryKpis: - AVERAGE_NETWR_CONVERTED - COUNT_TABLE__PIZZAP2P_XLSX_SHEET_0 Recommendation list Current configuration - id: List type: list settings: data: kpis: - TOTAL_NUMBER_OF_INVOICES - TOTAL_REVENUE process: AP New configuration - id: List type: list settings: data: kpis: - kpi: TOTAL_NUMBER_OF_INVOICES # Clearly defined that a KPI needs to be referenced id: 100 #Added uniqe identifier scope: visible - kpi: TOTAL_REVENUE id: 200 #Added uniqe identifier process: AP Time filter Current configuration - id: time-filter type: time-filter settings: data: dateColumn: EVENTTIME  New configuration - id: time-filter type: time-filter settings: data: dateAttribute: ACTIVITY.EVENTTIME #Attribute name indicates to reference attribute and attribute get referenced by record.attribute ###### Reminder for changed definitions in the view • KPI list: • type does not have to be defined anymore (settings.data.type: default) • you now have more abilities to style by adding "options" • Table • Allowsearch is not an option anymore ###### Version Control on Knowledge Model Level Every time you save your Knowledge Model, Studio stores it as a new version which you can browse and bring back at any time. Compared to the version control on package level, can also browse through the saved versions which are all part of the same unpublished package. ### Note Unpublished (they were never part of a published package) versions that are older than your last 2 published packages will be automatically deleted. Version Control will soon be available for all assets inside Studio. Read more about Version Control in Studio. You can access the Version History from the View or Edit mode of the Knowledge Model In there, you can browse past versions and bring them back if needed. ###### Faster PQL Validations inside the Knowledge Model We have improved the speed at which we can run the PQL validations inside the Knowledge Model. With this change, when PQL errors come up in the error panel, you are now also able to jump directly to the line with the PQL error by clicking on the error. ###### Delete Installed App/Instrument Content (analyses, views...) You can now delete content that is part of an installed Package (App/Instrument) and we'll bring it back in case the next Package Update contains changes on that deleted content. ###### Overwrite Packages (Apps/Instruments) across your Team(s) With the 'Copy To' functionality available for Packages you can now also choose to overwrite existing packages. This works between packages in the same team, but also across teams. The functionality is also available in the content-cli version 0.0.44 in the Machine Learning Workbench. ###### Open only the asset, without navigation If you want to open the asset without any navigational elements around you can use https://team.realm.celonis.cloud/package-manager/ui/views/ui/full-screen/assets/{Asset-ID} This will open the asset in "Business View Mode" so without the ability to edit. Authentication is still required. ###### Open tabs preserved The current active state of tabs is now preserved for you. e.g. when you refresh the page or when components like the KPI Bowler refresh to apply changes like the current KPI Target. ###### Align components vertically and horizontally To optimize the layout of your view you can now align your dropdown list, quick-filter, time-filter, and image components. To do this you can make use of the following new properties: Example  - id: dropdown type: dropdown settings: floatingPlaceholder: true styles: position: horizontal: left #left/center/right Defines the horizontal orientation of the component. Default value: left vertical: top #top/center/bottom Defines the vertical orientation of the component. Default value: top data: columns: - id: CATEGORY order: 100 ###### Process Explorer - use any Event Log column from the Knowledge Model The Process Explorer component in Views in the Studio accepts now any column from the Knowledge Model that represents an Eventlog. With this change, you can now have two Process Explorers showing data from two different columns in the same activity table: Multiple performance improvements will make your experience in Studio a lot smoother and faster! The dropdown-filter component was deprecated quite a while ago. Please use the dropdown component instead. When making use of attributes in placeholders you now need to reference them by using record.attribute and not attribute anymore. Before it was able to reference attributes like the following: Old configuration  - id: table1 type: table settings: name: my table data: limit: 20 columns: - id: ORDERS.STATE order: 600 - id: ORDERS_TASK_COUNT_GEN #It was possible to reference the object with an "_" order: 700 Now we have streamlined how we reference attributes like the following: Old configuration  - id: table1 type: table settings: name: my table data: limit: 20 columns: - id: ORDERS.STATE order: 600 - id: ORDERS.TASK_COUNT_GEN #Now this attributes syntax has changed to ".". "_" are no longer supported order: 700 ### Important There is a grace period of two weeks, where we will support both formats. After two weeks we will only support the standardized format with a dot ".". Example: ORDERS.TASK_COUNT_GEN We introduced new error states for situations when something went wrong in your view components. For example, You miss entering the required fields? The view component will let you know and allow you to quickly access the YAML editor. The Data Model is not loaded? The view component will inform you and give you the option to reload the Data Model. The change will be available for most components with this first release, most charts (World map, Sankey, Treemap, Waterfall, Process Explorer, Network Explorer), dropdown, kpi list, global search, quick filter, anomaly list... You can now access the information stored in the knowledge model for the table, anomaly, and kpi list component. This can help the board creator to simplify the board creation. Let's say we have a View consisting of the three component: table, anomaly, and kpi list: View metadata: key: anomaly template: false name: Anomaly knowledgeModelKey: new-sales-data variables: - name: kpiId defaultValue: KPI_AVERAGE_PROCESS_TIME layout: rows: - id: row1 columns: - id: column_e78735d4-a6de-4826-842a-c8f91ffa06ff componentId: kpi1 size: "1" order: 1 - id: column_d1118984-0ab0-4a7f-a924-e02c080fecbf componentId: anomaly1 size: "1" order: 2 - id: column_e739fee0-7faa-4187-92f9-a65c7c6e4046 componentId: table1 size: "1" order: 100 order: 100 components: - id: kpi1 type: kpi-list settings: options: size: sm showSettings: true showBenchmark: true showTarget: true showPriority: true scroll: false responsive: false data: kpis: - show: true id: a1812c90-2656-456c-a5a1-5a0218a1e61b kpi: KPI_AVERAGE_PROCESS_TIME order: 100 - show: true kpi: SUM_OF_SALES_EX id: a2463161-e7c5-4ab4-947f-c4bf3d8616f3 order: 200 onClick: update: variables: id: kpiId - id: anomaly1 type: anomaly-list settings: kpi:{kpiId}
name: Systemic Blockers
- id: table1
type: table
settings:
data:
columns:
- id: ORDERS.ORDER_ID
order: 100
- id: ORDERS.PROCESS_TIME
order: 150
- id: ORDERS.PRODUCT_NAME
order: 200
- id: ORDERS.QUANTITY
order: 300
- id: ORDERS.OORDER_DATE
order: 400
limit: 10
options:
showPagination: true

KPI

Now let's modify the View to make use of the meta information for the KPI List.

Knowledge Model snipped

metadata:
key: anomaly
template: false
name: Anomaly
knowledgeModelKey: new-sales-data
variables:
- name: kpiId
defaultValue: KPI_AVERAGE_PROCESS_TIME
- name: kpiMeta #Defines the input parameter of name kpiMeta. The object itself is defined in line 56. We recommend to define a default value for the object, so that no NULL values are shown up-on page load.
layout:
rows:
- id: row1
columns:
- id: column_e78735d4-a6de-4826-842a-c8f91ffa06ff
componentId: kpi1
size: "1"
order: 1
- id: column_d1118984-0ab0-4a7f-a924-e02c080fecbf
componentId: anomaly1
size: "1"
order: 2
- id: column_e739fee0-7faa-4187-92f9-a65c7c6e4046
componentId: table1
size: "1"
order: 100
- id: column_e739fee0-7faa-4187-92f9-a65c7c6e4045 #Added an additional component to display all information of the KPI object
componentId: text1
size: "1"
order: 200
order: 100
components:
- id: kpi1
type: kpi-list
settings:
options:
size: sm
showSettings: true
showBenchmark: true
showTarget: true
showPriority: true
scroll: false
responsive: false
data:
kpis:
- show: true
id: a1812c90-2656-456c-a5a1-5a0218a1e61b
kpi: KPI_AVERAGE_PROCESS_TIME
order: 100
- show: true
kpi: SUM_OF_SALES_EX
id: a2463161-e7c5-4ab4-947f-c4bf3d8616f3
order: 200
onClick:
update:
variables:
metadata: kpiMeta #Defines the KPI object with the name kpiMeta
- id: anomaly1
type: anomaly-list
settings:
kpi: ${kpiMeta.id} #Referencing the KPI ID name: Systemic Blockers - id: table1 type: table settings: data: columns: - id: ORDERS.ORDER_ID link: true order: 100 - id: ORDERS.PROCESS_TIME order: 150 - id: ORDERS.PRODUCT_NAME order: 200 - id: ORDERS.QUANTITY order: 300 - id: ORDERS.OORDER_DATE order: 400 limit: 10 options: stickyHeader: true showPagination: true - id: text1 type: text-box settings: title: Listing meta data from the knowledge model content: <strong>id:</strong>${kpiMeta.id} <br/><br/> <strong>name:</strong> #Defined in the knowledge model below in row 2
${kpiMeta.displayName} <br/><br/> <strong>pql:</strong>${kpiMeta.pql} #Defined in the knowledge model below in row 3 and 6
<br/><br/> <strong>unit:</strong> ${kpiMeta.unit} <br/><br/> #Defined in the knowledge model below in row 8 <strong>format:</strong>${kpiMeta.format} <br/><br/> #Defined in the knowledge model below in row 9
<strong>desiredDirection:</strong> ${kpiMeta.desiredDirection} #Defined in the knowledge model below in row 15 <br/><br/>  Knowledge Model snipped kpis: - id: KPI_AVERAGE_PROCESS_TIME displayName: Average Order Proccess Date (days) customAttributes: absoluteCalculation: true pql: AVG(DAYS_BETWEEN("Sample-sales-data-excel_xlsx_Orders"."ORDER DATE","Sample-sales-data-excel_xlsx_Orders"."SHIP DATE")) filterIds: [] unit: Days format: ',.2f' breakdowns: [] aggregations: [] parameters: [] targets: [] desiredDirection: INCREASE type: KPI  Anomaly Next let's create a Profile View for the Anomaly component. Here you can find a screenshot on how the provided example will looks like: Profile View metadata: key: anomaly-detail template: false name: Anomaly Detail knowledgeModelKey: new-sales-data knowledgeObjectId: ORDERS_ANOMALY profileView: true variables: - name: anomaly #Defines the anomaly object to access its meta data from the knowledge model # Default input parameters, which can be used for an anomaly component - name: blockerId - name: blockerName - name: blockerValue - name: flagId - name: flagName - name: kpiId includedTools: - default-action layout: rows: - id: row1 columns: - id: row1-col4 componentId: text2 size: 1/2 order: 400 order: 100 components: - id: activity1 type: activity-history settings: objectId:${id}
name: Activity History
- id: text2 #Listing meta data from the knowledge model
type: text-box
settings:
title: Listing meta data from the knowledge model
content: "<strong>id:</strong> ${anomaly.id} <br/><br/> #Defined in the knowledge model below in row 2 and 15 <strong>displayName:</strong>${anomaly.displayName} <br/><br/> #Defined in the knowledge model below in row 3 and 16
<strong>Description:</strong> ${anomaly.description} <br/><br/> #Defined in the knowledge model below in row 4 and 17 <strong>Flag:</strong>${anomaly.flag} <br/><br/> #Defined in the knowledge model below in row 9 and 21
<strong>prop1:</strong> ${anomaly.customAttributes.prop1} <br/><br/> #Defined in the knowledge model below in row 6 and 19 <strong>prop2: </strong>${anomaly.customAttributes.prop2}<br/><br/> #Defined in the knowledge model below in row 7 and 20
<strong>prop3: </strong> ${anomaly.customAttributes.prop3}" #Defined in the knowledge model below in row 8. In the screenshot above we look at the second anomaly which doesn't have this object defined and therefore returns null. - id: text3 #Listing default input parameters type: text-box settings: title: Listing default input parameters content: " <strong>blockerId:</strong>${blockerId} <br/><br/>
<strong>blockerName:</strong> ${blockerName} <br/><br/> <strong>blockerValue:</strong>${blockerValue} <br/><br/>
<strong>flagId:</strong> ${flagId} <br/><br/> <strong>flagName:</strong>${flagName} <br/><br/> <strong>kpiId:</strong> ${kpiId}"  Knowledge Model anomalies: - id: ANOMALY_LATE_PROCESSED_ORDERS displayName: Orders processed later than 5 days description: This Anomaly displays Orders processed later than 5 days customAttributes: prop1: anomaly1_value1 prop2: anomaly1_value2 prop3: test_test flag: FLAG_LATE_PROCESSED_ORDERS kpiIds: - KPI_AVERAGE_PROCESS_TIME - SUM_OF_SALES_EX knowledgeObjectId: ORDERS_ANOMALY type: ANOMALY - id: ANOMALY_HIGH_PROFIT_ORDERS displayName: Orders with a profit higher than 100 dollars description: This Anomaly displays Orders with a profit higher than 100 dollars customAttributes: prop1: anomaly2_value1 prop2: anomaly2_value2 flag: FLAG_HIGH_PROFIT_ORDERS kpiIds: - KPI_AVERAGE_PROCESS_TIME - SUM_OF_SALES_EX knowledgeObjectId: ORDERS_ANOMALY type: ANOMALY Table Next let's create a Profile View for the table component. Here you can find a screenshot on how the provided example will looks like: Orders Profile View metadata: key: order-details template: false name: Order Details knowledgeModelKey: new-sales-data knowledgeObjectId: ORDERS profileView: true variables: - name: record #Defines the table object to access its meta data from the knowledge model - name: id # Default input parameters, which can be used for a table component layout: rows: - id: row1 columns: - id: row1-col1 componentId: activity1 size: "1" order: 200 - id: row1-col2 componentId: text1 size: 1/2 order: 300 order: 100 components: - id: activity1 type: activity-history settings: objectId:${id}
name: Activity History
- id: text1 #Listing meta data from the knowledge model. As of this is only limited to the object used in the table. Other attributes can not be displayed.
type: text-box
settings:
title: Listing meta data from the knowledge model
content: ${record.PRODUCT_NAME}<br/><strong>Process Time:</strong>${record.PROCESS_TIME}<br/><strong>Order ID:</strong>
${record.ORDER_ID}<br/><strong>Quantity:</strong>${record.QUANTITY}<br/>
- id: text2 #Listing default input parameters
type: text-box
settings:
title: Listing default input parameters
content: <strong>id:</strong> ${id} <br/> <strong>Product Name:</strong>  View - Table configuration  - id: table1 type: table settings: data: columns: - id: ORDERS.ORDER_ID link: true order: 100 - id: ORDERS.PROCESS_TIME order: 150 - id: ORDERS.PRODUCT_NAME order: 200 - id: ORDERS.QUANTITY order: 300 - id: ORDERS.OORDER_DATE order: 400  We used to create a new filter chip from each component which has generated the filter. This made it difficult to keep track which filters are applied for a particular attribute furthermore it wasn't possible to modify a filter, which were applied by a different component. Now the filter chips are getting combined. From within the Smart Sensor configuration users can add filters either by creating a new filter via a PQL editor or by selecting them out of a list of existing filters. A preview also indicates the amount of matching Signals already during the configuration. (See Celonis Smart Sensor for more details) The metadata setting "order" and "icon" are not having any function since a year and will now not be allowed as a setting in the metadata anymore. You can simply remove them. After the first filter was applied to a table column users weren't able to further narrow down their filters. Now users can apply multiple filters on the same column. • Extension support! Validation is now also supported within Extended Views • Auto-Suggestion for: • Included Tools • scope (implemented for most cases) • Skill keys (for skills from the same package) • knowledgeObjectId (for Profile Views) • During Validation the save button indicates now that the validation is still ongoing • List items excluded using "scope: hidden" are not validated (and can be wrongly configured if chosen so) Users can now resize the Profile View in order to see all relevant information at one spot. As of now the size of the Profile View is not persisted but might be added further down the road. The new Search functionality allows you to search for any view, analysis, knowledge model, skill, even package, to find what you are looking for faster. Time charts that have a temporal data series as x-axis are now by default sorted in chronological order. We have introduced a new configuration option, which will allow you to control the text wrapping in tables. This attribute can be used when your table is set to "scrollHorizontally: false" New attribute: • preventLineBreak: true | false Defines if the text should be displayed in one row (true) or displayed in multiple rows (false). preventLineBreak can be used if your table is set to scrollHorizontally: false. Optionally Default value: true View YAML  - id: table1 type: table settings: name: my table data: limit: 20 columns: - id: ORDERS.ROW_ID showTasks: true order: 100 link: true - id: ORDERS.ORDER_ID order: 200 link: false - id: ORDERS.SALES order: 300 - id: ORDERS.PRODUCT_NAME order: 400 - id: ORDERS.CUSTOMER_NAME order: 500 - id: ORDERS.STATE order: 600 options: scrollHorizontally: false #preventLineBreak can be used if your table is set to scrollHorizontally: false preventLineBreak: true #false Defines if the text should be displayed in one row (true) or displayed in multiple rows (false). Default value: true  preventLineBreak: true preventLineBreak: false We introduced a new dynamic legend that users can use for a variety of data series types like sequential color schemes with custom thresholds or categorical data: Consistent with our new branding, we introduced a new color palette. Check out the available colors in charts. The colors follow the highest scientific standards to ensure they are effective and readable for everyone. They improve the overall user experience and make identifying and resolving execution gaps easier. You will notice that the default doesn't contain green, red and, yellow. And that’s on purpose! In the next releases you can expect us to simplify how to combine those semantically important colors with your key targets. Stay tuned! The Sankey Diagram and Treemap components now have a reduced default layout. The dropdowns for the KPI selections are now hidden by default. They can be enabled in the settings.  - id: SankeyDiagram type: sankey settings: showConfig: false ###### Changes on Profile Views are propagated immediately If something is changed in a profile view during use (e.g. changing the status of a task) it is immediately propagated to the underlying action view. ###### Refactored KPI list settings and made configuration more flexible We removed the attribute "type" which was used to define if the KPI list is of type default (non-interactive) or tile (interactive). Interactive KPIs always required an onClick therefore it will not change how existing KPI list work. Still we recommend to remove the type attribute from your KPI lists. Example of an old configuration  - id: basic-kpi-list-non-interactive type: kpi-list settings: name: Basic KPI List + not interactive data: type: default #Not interactive kpis: - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 100 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 - id: basic-kpi-list-interactive type: kpi-list settings: name: Basic KPI List + interactive data: type: tile #Interactive kpis: - kpi: TOTAL_NUMBER_OF_INVOICES_2 show: true id: "" order: 1 - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 102 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 onClick: #Always required to make KPI list really interactive update: inputs: id: kpiID name: kpiName New configuration  - id: basic-kpi-list-non-interactive type: kpi-list settings: name: Basic KPI List + not interactive data: #No longer requires the attribute "type: default/tile" kpis: - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 100 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 - id: basic-kpi-list-interactive type: kpi-list settings: name: Basic KPI List + interactive data: #No longer requires the attribute "type: default/tile" kpis: - kpi: TOTAL_NUMBER_OF_INVOICES_2 show: true id: "" order: 1 - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 102 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 onClick: #Required to make KPI list interactive update: inputs: id: kpiID name: kpiName Furthermore we now provide more flexibility on configuring the required KPI list layout. Following options were added: • size: sm | lg: Defines the font size for the KPI. Default value for non-interactive KPI: small and for interactive KPI: large • showSettings: false | true Defines if a Setting option will be displayed. Default value: false • showBenchmark: true | false Defines if benchmark information is displayed. Default value: true (it will only displayed if data is available) • showTarget: true | false Defines if target information is displayed. Default value: true (it will only displayed if data is available) • showPriority: true | false Defines if priority information is displayed. Default value: true (it will only displayed if data is available) Control font size  - id: basic-kpi-list-non-interactive type: kpi-list settings: name: Basic KPI List + not interactive data: kpis: - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 100 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 options: size: lg #Defines the font size of the displayed KPI. Non-interactive KPIs are by default small, while interactive KPIs are by default large showSettings: false | true Defines if a Setting option will be displayed. Default value: false showBenchmark: true | false Defines if benchmark information is displayed. Default value: true (it will only displayed if data is available) showTarget: true | false Defines if target information is displayed. Default value: true (it will only displayed if data is available) showPriority: true | false Defines if priority information is displayed. Default value: true (it will only displayed if data is available) - id: basic-kpi-list-interactive type: kpi-list settings: name: Basic KPI List + interactive data: type: tile kpis: - kpi: TOTAL_NUMBER_OF_INVOICES_2 show: true id: "" order: 1 - kpi: COUNT_TABLE__ACTION_HISTORY show: true id: "" order: 102 - kpi: COUNT_TABLE__ACTION_TYPE show: true id: "" order: 200 onClick: update: inputs: id: kpiID name: kpiName options: size: sm #Defines the font size of the displayed KPI. Non-interactive KPIs are by default small, while interactive KPIs are by default large showSettings: false | true Defines if a Setting option will be displayed. Default value: false showBenchmark: true | false Defines if benchmark information is displayed. Default value: true (it will only displayed if data is available) showTarget: true | false Defines if target information is displayed. Default value: true (it will only displayed if data is available) showPriority: true | false Defines if priority information is displayed. Default value: true (it will only displayed if data is available) ###### Make use of KPIs and Attributes values in the Text component or URLs Generate dynamic text or URLs by making use of placeholders. You can define the placeholders at a central place and reference the objects within the component. Example: "{0}" will reference the first placeholder object. In the example below this will be the "KPI: NUMBER_OF_SOLD_PRODUCTS_EX". "{1}" will reference the second object and so on. You can make use of placeholders for the following components: Text Text example  - id: textbox1 type: text-box settings: content: |- <dl> <dt class='bold'>NUMBER OF SOLD PRODUCTS</dt> <dd>{0}</dd> #References the first placeholder kpi: NUMBER_OF_SOLD_PRODUCTS_EX <dt class='bold'>SUM OF SALES</dt> <dd>{1}</dd> #References the second placeholder kpi: SUM_OF_SALES_EX <dt class='bold'>PRODUCT NAME</dt> <dd>{2}</dd> #References the third placeholder attribute: PRODUCT_NAME <dt class='bold'>Price</dt> <dd>{3}</dd> #References the forth placeholder attribute: SALES </dl> placeholders: #Defines the required placeholders - kpi: NUMBER_OF_SOLD_PRODUCTS_EX - kpi: SUM_OF_SALES_EX - attribute: PRODUCT_NAME - attribute: SALES Button Button example  - id: buttons1 type: button-list settings: buttons: - label: Signle KPI test onClick: href: http://www.sap.com?sumofsales={0} #References the first placeholder kpi: SUM_OF_SALES_EX placeholders: #Defines the required placeholders - kpi: SUM_OF_SALES_EX id: 35cd1ac6-6f01-4646-896c-4b2bbeb25a71 order: 100 - label: Multiple KPIs test onClick: href: http://www.sap.com?sumofsales={0}&numberofsoldproducts={1} #References the first and second placeholder placeholders: #Defines the required placeholders - kpi: SUM_OF_SALES_EX - kpi: NUMBER_OF_SOLD_PRODUCTS_EX id: 35cd1ac6-6f01-4646-896c-4b2bbeb25a72 order: 200 iFrame iFrame example  - id: iframe1 type: iframe settings: name: Multiple KPIs and Attributes test src: http://www.celonis.com?sumofsales={0}&numberofsoldproducts={1}&productname={2}&sales={3} #References the first, second, and third placeholder placeholders: #Defines the required placeholders - kpi: SUM_OF_SALES_EX - kpi: NUMBER_OF_SOLD_PRODUCTS_EX - attribute: PRODUCT_NAME - attribute: SALES height: 600px width: 100% ###### Move Studio Content across Teams and Packages You can now move Apps/Instruments or individual Views, Analyses, Knowledge Models and Skills across teams. Furthermore, Views, Analyses, Knowledge Models and Skills can be moved across Apps/Instruments within your team with the drag and drop interaction. ###### The editing lock is acquired automatically when returning Whether you are editing a View, Knowledge Model, Skill or Analysis in Studio, you lock the asset in order for others to not overwrite your changes. The lock automatically expires after 5 minutes of inactivity, and if you return within this time period, your lock is automatically acquired back and restated. ###### Update installed Apps/Instruments to the latest Marketplace versions The Dependency section informs you about updates on your installed Apps/Instruments and allows you to directly update to the latest version. ###### New Action to Duplicate Apps/Instruments You can now duplicate your Apps/Instrument. When duplicating, only the latest current version will be duplicated, the app/instrument history will not be available in the new App/Instrument. ###### The app/instrument version is increased automatically We automatically suggest the next version number when you publish your App/Instrument. The suggestion can be manually overwritten. ###### Preview the Data Model directly from Studio Use the Data Model icon inside the Knowledge Model to preview the Data Model used. When the user applied a filter on a table and performed an action on precisely the filtered attribute (e.g. assignee) then the line item was still selected even though it was no longer shown in the table. This logic has been adjusted so that we remove the selection after an action was performed. If a dropdown contained really long text the text was simply cut. Now the text is getting wrapped and three dots indicate that the text is too long to fit into the dropdown. Up-on hovering the entire text is getting displayed. ###### Added reloading of a table after task is executed In addition to the user name, who has performed an action, we now also display the users avatar. The avatar is automatically displayed and doesn't require any additional setting change. The Table component is using a "link: true" attribute but the Profile View is not created yet. The user will then see the below shown error message. You can now send parameters from a KPI list component to the Knowledge Model. This can be used to display revenue in the user preferred currency. View Example  - id: drop-product-categories # Defines a dropdown which defines on which column the number should be summed up. type: dropdown knowledgeModelKey: sales-data settings: data: columns: - id: SALES_DATA_COLUMNS selected:${kpiParameterName}
displayName: Select a column to calculate sum
onClick:
update:
inputs:
- name: kpiParameterName
order: 100
floatingPlaceholder: true
- id: kpi-sales-with-parameters
type: kpi-list
knowledgeModelKey: sales-data
settings:
options:
size: sm
showSettings: false
showBenchmark: true
showTarget: true
showPriority: true
scroll: false
responsive: false
data:
kpis:
- show: true
kpi: SUM_OF_PARAMETER
parameters: #Set the parameter defined in the dropdown and passes it to the Knowledge Model.
- \${kpiParameterName}
id: bd7e5555-3a36-488a-9849-0f03c6ab17aa
order: 100
- id: bd7e5555-3a36-488a-9849-0f03c6ab17ab
kpi: AVERAGE_SHIPPING_DURATION_EX
show: true
order: 200

Knowledge Model Example

 -
id: SUM_OF_PARAMETER
displayName: Sum Of Selected Column
customAttributes:
active: true
pql: SUM("Sample-sales-data-excel_xlsx_Orders"."{p1}") #Makes use of the passed parameter to run SUM function on the respective column
filterIds: []
format: ',.2f'
breakdowns: []
aggregations: []
parameters:
-
id: columnName
displayName: name of a column to calculate the sum
defaultValue: SALES
targets: []
type: KPI
filters: []
variables: []
activities: []
actions: []
anomalies: []
eventLogs: []
customObjects: # Custom object is used for the dropdown component
-
id: SALES_DATA_COLUMNS
displayName: Sales Data Column Names
customAttributes:
list:
-
name: SALES
-
name: QUANTITY
-
name: DISCOUNT
-
name: PROFIT

Removed the browser hover state, which was overlapping with the customized hover state.

• Stability Improvements

• Tools and components can better cope with internal issues and are a lot more stable