Selection rule
Description
Selection rules specify which objects should be selected in a task execution. This selection is based on the independent objects Table, Sequence and View of the source database. When selecting one of these objects, for example a table, XDM will also select all dependent objects such as indexes, grants, constraints, and aliases.
| In the comparison report, aliases will be treated as standalone objects. |
| A view will only be selected, if the referenced table is also selected. |
It is possible to define more than one selection rule. There is no upper limit on the number of selection rules. The selection rules may overlap, which means that it is acceptable for multiple different selection rules to match the same object. In this case, the table will only be processed once by a task execution. All objects that satisfy at least one selection rule are selected during task execution.
Selection rules are defined for exactly one source connection. For use cases with more than one source database, selection rules have to be defined for every single source connection.
Another option when using selection rules is to specify an application model and version. XDM will automatically select all tables of the application model version that are defined by the data relation rules.
| It is possible to combine both types of selection rules in one task template or task. |
Selection Pattern
The selection pattern can be used to select more than one object with an expression by using special wild card characters. XDM uses the selection pattern to select several similarly named objects in a single rule. For example, multiple tables can be selected using a pattern for the schema and name.
Selecting objects
To select an explicit object, the name has to be specified without wild cards. However, a user often wants to select more than one object without specifying all objects explicitly. For this purpose a selection pattern has two wild card characters:
-
The underscore (
_) can be used to match any single character at the given position, or -
The percent sign (
%) can be used to match any sequence of characters at the given position.
Properties
The table below documents the available properties for selection rules. The 'name' column displays the property name as it can be used in Groovy and Java Scripts.
Name |
Type |
Default |
Description |
|---|---|---|---|
|
active |
Boolean |
true |
Specifies whether the rule is active and therefore used, or inactive and therefore ignored, when a task is executed. |
|
applicationModel |
ApplicationModel |
n/a |
Specifies an application model used to derive the list of tables selected by the copy process. All tables referenced in the data relation rules of the specified application model will be explicitly selected. Tables that reference another application model will be ignored. This is only relevant when the selection type specifies Application Model. |
|
description |
String |
n/a |
An optional description for this object. The description can contain multiple lines to give more context on the configured object. The description is not used in a technical context. |
|
namePattern |
String |
% |
Specifies a selection pattern which is used to match the name of database objects of the specified object type. |
|
objectType |
ObjectType |
TABLE |
Specifies the type of database object that the rule matches. The available object types are Table, Sequence, and View. XDM only supports views in Db2 for z/OS and in Db2 for LUW databases. Hence, views can only be specified in rules for those database types. |
|
schemaPattern |
String |
% |
Specifies a selection pattern which is used to match the schema of database objects of the specified object type. |
|
selectionType |
SelectionType |
PATTERN |
The selection type can specify either Pattern or Application Model.
|
|
tags |
Tag |
n/a |
Contains the tags that apply to this object. These tags can be used in the search to find objects quickly and effortlessly. |
|
version |
Version |
n/a |
Specifies the version of the chosen application model. This is only relevant when the selection type specifies Application Model. |
Actions
The available actions are described below. Some actions apply to the list, while others are specific to selected selection rules.
List Actions
The following actions are available on the selection rules list. If the action is disabled a tooltip will provide the exact reason for the deactivation. The required permissions are described in detail for each action.
-
Bulk Delete
-
Create
-
Export CSV
-
Import CSV
-
List History
Delete the selected objects.
The following options are available:
- Cascade
-
Recursively delete depending objects.
|
When using cascade, dependent objects are deleted first also with cascade enabled. Thus, a cascade deletion is a recursive function that deeply searches for dependent objects and deletes them first. There is only a confirmation for the first object. The dependent objects are deleted without confirmation but only when the user has the DELETE permission. This feature is only available in development mode. More information about development mode can be found in the chapter User Settings. It should be used with caution. |
An object in the result list can have two different states, these are:
- DELETED
-
The object could be deleted.
- NOT_DELETED
-
The object could be not deleted. This may be because the executing person does not have a delete permission on the object or the object is still referenced by others. A detailed reason can be determined with the help of the error message. If the object is still in use, these objects are also displayed.
The following permissions are required on the list:
-
READ
-
WRITE
Creates a new object in the current list. Depending on the object type either a popup dialog is shown for the most important settings, or the complete object is shown in edit mode. The dialog provides the option to create the object and remain in the current list or to switch to the newly created object in edit mode to perform further changes.
The following permissions are required on the list:
-
CREATE
Exports the current list in CSV format. This will start a download operation for your browser.
The following permissions are required on the list:
-
READ
Creates new objects in the list from a CSV file. The format must comply with the format produced by the export. All imported objects will be added to the list. The import terminates with an error message if an object with the same name already exists and Replace rules is set to false.
- Replace rules
-
The Replace rules option determines whether a rule is appended or replaced. If set to true, all current rules will be replaced with the new rules, otherwise the new rules are appended to the existing rules.
The following permissions are required on the list:
-
WRITE
The history list tracks all modifications made to objects within it. A new record is added each time an object is created, edited, or deleted. A record indicates who made the change, which object was affected, and when the change was made.
For more information about the concept of the history refer to the history concepts.
The following permissions are required on the list:
-
READ
Object Actions
The following actions are available on specific selection rules. In order to execute the action, the user must possess the necessary permissions for the object. The permissions required for each action are described individually. If the user does not have these permissions, the action will be disabled and the tooltip will provide the exact reason for the deactivation.
-
Check
-
Copy
-
Delete
-
Edit
-
Object History
This action validates the object and its dependencies, reporting configuration errors that could cause issues during task or workflow execution. The validation will cascade through the child objects of the checked objects and objects referenced by them.
For instance, if an installed application of an environment is checked, the check will process the application model, the specified version, the connection, modification sets, and involved modification methods. If an object has rules, all active rules will be checked. The modeling connection and version, including their modification sets and methods, will also be checked. Deactivated objects will not be included in recursive checks, but can be checked individually if the check is executed on the object itself.
Checks often require additional information from the context of the objects being checked, such as necessary connections or custom parameter values. The check will gather information from the objects being checked and use it to perform checks on child objects. Any required additional information must be provided before the check begins. The check queries the user to provide these missing information.
- Database object checks
-
For all rules which reference database objects such as tables, columns, etc, the check verifies that the those objects exist in the database system. If a connection can be inferred from the context, then this connection is used. If no connection is available in the context, it must be specified before the check is executed.
- Connection checks
-
For objects which configure access to external systems, such as connections or storage locations, the configuration check verifies that access can be established using the given credentials. Furthermore, additional operations on database connections are performed to check whether the credential user has the necessary authorization to access relevant database objects. In particular, the credential user’s permission to read source tables and write to target tables is verified. Similarly, for storage locations the check verifies that the credential user has permission to write to the working directory.
- Code checks
-
For all entities containing code segments, such as modification methods or condition scripts, the syntax for the code is checked. This does not check, however, whether at run time all necessary variables are likely to be available.
The following permissions are required:
-
READ
The copy action creates an identical copy of the object. A new entry is created in the object list and all properties in the new object are set identical to the copied object.
The following permissions are required:
-
READ
-
WRITE
Delete the object. If the object is still used by another entity, an error message is displayed, and the object is not deleted. The delete operation must be confirmed in a separate popup.
The following options are available:
- Cascade
-
Recursively delete depending objects.
|
When using cascade, dependent objects are deleted first also with cascade enabled. Thus, a cascade deletion is a recursive function that deeply searches for dependent objects and deletes them first. There is only a confirmation for the first object. The dependent objects are deleted without confirmation but only when the user has the DELETE permission. This feature is only available in development mode. More information about development mode can be found in the chapter User Settings. It should be used with caution. |
The following permissions are required:
-
READ
-
WRITE
Opens the current entity in edit mode.
The following permissions are required:
-
READ
-
WRITE
The history displays all changes made to the respective XDM object, including any changes made to its rules.
Each change record includes information about the operation performed (e.g. CREATE, UPDATE, DELETE), the timestamp, and the user responsible for the change.
For more information about the concept of the history refer to the history concepts.
The following permissions are required:
-
READ
Examples
Common scenarios for choosing tables by using the selection pattern are:
-
You want to select one or more tables by name. In this case, specify the table schema in the field Schema pattern, and the table name in the field Name pattern without using wild cards.
-
You want to select all tables that are located in a given schema. In this case, enter the schema name in the field Schema pattern. In the field Name pattern, enter a single percent sign (
%). The percent sign acts as a wild card and causes the selection of all tables in that schema. -
You want to select some tables which are located in a given schema and all the table names that start or end with the same letter combination. For example, you wish to select tables that a) start with the letter
P,or b) end with the letter combinationNEW. In this case, you should enter the schema name in the field Schema pattern. In the field Name pattern, you would specify a single percent sign after or in front of the letter combination such as (P%) or (%NEW) respectively.