New Filter Icons on Connector Shapes
From now on, data from connectors can be filtered easily and without scripting knowledge. Filters can be defined directly in the process based on the output of the connector.
Once a connector shape has been created in the Process Designer and a call has been assigned to the connector shape, a filter can be created. To do this, the shape must first be selected. A gray filter icon is now visible in the upper right corner. Clicking on the icon opens the filter dialog.
If a filter has been created for the connector shape, the filter symbol turns blue and can be seen even if the shape is not selected.
Filter Maintenance on the Shape
By clicking on the filter icon, a new filter can be created or an existing filter can be edited. A dialog opens in which the filter can be configured. If no filter is configured for the shape yet, the following view appears first.
Please note: At this stage, filtering of results of asynchronous connectors via the filter icon on the shape in the Process Designer is not possible. The same applies to offline connectors.
Filter Dialog
A new filter can be added via the “Add Filter” button. The user gets a list with parameters for the selected connector. The list is also filterable. Now the user can select a parameter for which a filter is to be configured. Clicking on a parameter selects it and the “Apply” button at the bottom right next to “Cancel” navigates the user to the next page of the dialog where the filter can be configured for the selected parameter.
If possible, a filter should always refer to a “Collection Parameter”. More about this under “Filter execution”.
Filter Specifications
When restricting by roles, a specification defines which filter is to be used. E.g. “User role XY” sees only data with the status “open”. If a filter is not restricted by roles, there may be only one specification. If a filter is restricted by roles, there can be multiple specifications. There must always be at least one specification.
A new specification can be created after activating the restriction by role via the plus button in the upper right corner. It is also possible to copy an specification. When copying a specification, the roles for the new specification are not copied. If more than one specification exists, it can also be deleted by clicking on the button with the trash can icon next to the specification name.
Role Restriction
With this option return data can be filtered by user roles. This can be used to determine which data is displayed to users who have a specific role. Users with a specific role will only see a portion of the data returned by the connector. The role restriction can take place by user roles and business roles.
The role restriction can be activated via the “Restrict by roles” switch. The “Select roles” input field becomes clickable as soon as you have activated “Restrict by roles”. A click into the input field opens a dialog for role assignment of one or more roles. In addition, the roles can be deselected again or deleted via the “x” symbol in the input field.
A role can only exist for one characteristic and cannot be added to any other.
An example of a role restriction with two specifications would be the following:
- The technician should see all tickets for which the status is
is “Open” - The administrator is allowed to see all tickets, regardless of whether the status is “Open” or “Closed”
Filter Segments and Rules
Segments contain one or more rules. These rules are specified in the form “Field” -> “Operator” -> “Value”. E.g. “Status” -> “IS” -> “Open”.
In a rule the user selects on the left side the operand – in our case a parameter of the connector -, in the middle the “operator” for example “IS” and on the right side the second operand for example a variable, widget or a constant string like “Open”. The user defines within a segment how the single rules should be linked. Either the conditions are linked with “And” or with “Or”. The “And/Or” button next to the text “Rules are linked with:” is used for this purpose. A segment contains several rules and is defined as “and” or “or”. This refers to the conditions within the segment.
Several segments can therefore also be concatenated with “and” or “or”. Segments and rules can also be deleted using the buttons with the trash can icons. If the user deletes the last rule, the segment is automatically removed.
Overview of operators
Operator | Meaning | Valid for |
Is | The first operand equals the second | All datatypes |
Is not | The first operand does not equal the second | All datatypes |
Contains | The first operand is contained in the second. If the first operand is a string, this can be used to check whether the second operand is a substring of the first. | Collections, Strings |
Contains not | The first operand is not contained in the second. If the first operand is a string, this can be used to make sure that the second operand is not a substring of the first. | Collections, Strings |
Please note: If string values are compared with Is (not) or Contains (not), the comparison is case sensitive. This means that a comparison like “Open” Is “open” or [“Open”] Contains “OPEN” will return false. “Open” must be compared with “Open”.
Filter Execution
In the case of a connector call with filter, the result is filtered on the backend side based on the settings made. If a filter rule evaluates to false, e.g. the executing user has the role Technician and one of the entries of the connector result has the status “Closed” (see Role restriction example), then this object is filtered from the result.
Please Note: This also means that the result of a connector call can potentially return an empty object. This must be considered in the further process execution. Therefore, filtering should always be done on a collection of objects, although it is possible to filter out fields from objects.
Deleting Filters
A filter can be deleted directly via the Shape menu (on the right, when a Shape is selected) or via the Filter dialog.
Please Note
For security reasons, connector calls from scripts and client-side business objects are no longer possible. If a connector was previously called from a script or client-side business object, please create a connector shape instead!
This does not affect the execution of connector calls from serverside business objects.