Row Level Processor Task Template

An XDM row level processor task template is a template for a task that copies dependent rows from one database to another. It examines the relationships between the tables in the source environment to determine the rows to be extracted. It does not directly reference connections, but rather source and target environments.

XDM honors referential integrity constraints when extracting rows if these have been described in the form of data relation rules. This ensures that for every row that is extracted from a table, all related child and parent rows are also extracted if the relation is included in the list of data relation rules in the version entities of the environment. The XDM row level processor task template and the corresponding tasks can be used to transport all rows that constitute a test case from a set of tables into another, without affecting unrelated rows in those tables.

Row level processor tasks create a subset of the source data in the target environment. The user defines a start table, a selection condition, and data relation rules. The data relation rules define which rows in related tables are to be included in the selection. Data relation rules also allow the selection of data in tables only indirectly related to the start table. The selected data is copied to corresponding tables in the target database. A row level processor task can also mask the data inserted into the target database.

Permissions

Task Templates have specific permissions to manage user access. The table below displays the available permissions and their purposes.

For more details about the concept of XDMs permission management refer to Permission Management.

Permission

Description

ADMINISTRATION

Specifies that the grantee can grant and revoke permissions to and from other users.

A user that creates an object automatically receives the ADMINISTRATION permission on that object.

DELETE

Specifies that the grantee can delete objects of the selected types.

DIAGNOSE

This permission controls access to diagnostic data of a task execution. The diagnostic data consists of the stages, their outputs and the batch reports.

EXECUTE

Specifies that the grantee may execute the object, or schedule the object for later execution. This permission only applies to objects that are executable, i.e. tasks, task templates, workflows, workflow templates, and data shops.

READ

Specifies that the grantee has read permission on the object. The grantee is able to see the object in lists and can see all of the object’s details, such as rules or access permissions.

In addition, the grantee can reference this object. For example, a user who has READ permission on a credential object can refer to this credential object when creating a new database connection.

WRITE

Specifies that the grantee has the permission to change the settings and attributes of an object. This also includes modifying any rule lists that might be associated with the object (for example, the selection rules of a task template).

Properties

The table below documents the available properties for task templates. The 'name' column displays the property name as it can be used in Groovy and Java Scripts.

Name

Type

Default

Description

Check uniqueness after modification

checkUniquenessAfterModification

Boolean

true

This option specifies whether XDM checks uniqueness of modified unique key fields. When a modification method of modification type COLUMN modifies a column which is part of a unique key, XDM will check whether all output values of the modification are unique. This only checks the values processed by the task and does not involve other values that might exist in the target table.

Object container retention period

containerRetentionPeriod

String

-1

This option specifies when object selection results for a task should be overwritten.

If there is an object selection result for a task that is younger than the specified retention period, then XDM will use this result for the task execution. Otherwise, XDM will re-fetch the object structures from the database catalog and create a new object selection result and delete the old one.

For example, if the retention period is set to P5D, and the last execution of the task was no more than four days ago, then XDM will use the existing object selection result for the task execution and skip object selection for the new run. However, if the last execution of the task was five or more days ago, then XDM will re-fetch the object structures from the database catalog and delete the existing object selection result.

This option is useful if the object structures within the source and target systems do not change between XDM task runs. This means XDM does not need to re-fetch the structures of the required objects from the database catalog. This can save time and resources, especially for large databases with many objects. However, this will lead to problems if the object structures change between task runs.

Per default the container retention period is set to -1, which means that XDM should always fetch structure definitions from the database catalog and delete any existing object selection results. You should use a retention period of -1 if object structures change frequently. Furthermore, running a task once with a retention period of -1 can be used to reset the object selection results for a task if the object structures have changed once.

A detailed description of the period syntax can be found here.

Deactivate logging before apply

deactivateLoggingBeforeApply

Boolean

false

This flag controls if logging should be disabled before execution the Subset Apply. This flag is supported for PostgreSQL and Db2. Deactivating logging for tables can improve the performance. For example for Db2 z/OS before inserting data starts XDM will make a ALTER TABLESPACE …​ NOT LOGGED on all tablespace that are affected. After the Subset Apply is done, XDM will activate logging by ALTER TABLESPACE …​ LOGGED again. For Db2 LUW XDM will execute a ALTER TABLE …​ ACTIVATE NOT LOGGED INITIALLY to disable logging. For PostgreSQL XDM will execute a ALTER TABLE …​ SET UNLOGGED to disable logging and ALTER TABLE …​ SET LOGGED again to enable logging. WARNING: When this property is used, then a recovery of the table is not possible anymore in all cases. Any failure can result in a a useless table, because the DBMS will mark the table as inaccessible.

Delete execution files on success

deleteExecutionFilesOnSuccess

Boolean

false

Specifies if working files of a task execution should be deleted in case of a successful task execution. This reduces the required space for a task and should therefore prevent space problems on the server when many tasks exist.

Description

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.

Name

displayName

String

n/a

Specifies the name of the object. The name is used to display and identify the object in lists. The name can contain any valid UTF-8 characters.

Execution platform

executionPlatform

String

default

This property defines whether and on which platform the Dataflow server is being built for a task or workflow execution. The property on the template is overwritten by the property on the task or workflow.

Execute retention period

executionRetentionPeriod

String

-1

Specifies how long executions are kept for the specific task or workflow. If an execution is older than the specified retention period, the XDM service will remove it. If the executions should not be deleted automatically, the retention period must be set to -1. Otherwise, the input must start with P for a date period or with PT with a time period.

A change of the execution retention period will only affect executions created after the change.

A detailed description of the period syntax can be found here.

Queue size

extractQueueSize

Number

50

The number of packages that can be cached by the subset extractor, before the process is slowed down to empty the cache. A bigger cache leads to a better performance, but also uses more memory. It also influences the number of rows that are inserted with a single query. This can lead to queries which are too long for the target database system.

Thread count

extractThreadCount

Number

1

Defines the number of threads that are used during subset extract. Using more threads in subset extract can enhance the processing speed, but uses more memory.

Prepare extract data preview

extractTraceActive

Boolean

false

This option prepares an additional temporary database, that allows previewing of the extracted data in the user interface. When enabled, the data can be investigated in the task execution detail view using the Schema Browser button.

If this option is enabled, additional space and time will be used during the execution of the task. Use this option during task development or debugging, but disable it for productive task usages.

For this option to work, the XDM core service needs access to the task directories. Please ensure, that the /xdm/tasks directories of your xdm-dataflow service, and your xdm-core service are mounted to the same storage.

Fetch keys with temporary table

fetchKeysWithTempTable

Boolean

false

This option specifies whether XDM uses a temporary table to fetch keys. If this property is set to true, XDM will use a temporary table instead of OR and AND clauses to fetch key values during data extraction to improve performance.

The performance enhancement is typically only taking effect if the extract package size is increased (for example 5.000 as package size). Generally, this feature should only be used when extracting more than 25.000 rows from a table.

This currently only works with Db2 for z/OS.

However, this property will be deactivated if at least one of the key values consists of one or more null values. Then the conventional behavior is used as a fallback (using OR and AND clauses) to fetch the key values.

Fill mode

fillMode

Enum

INSERT

The fill mode defines how source rows are inserted into the corresponding tables of the target. It is used in all row level processing tasks, as well as in table copying tasks in which SQL data transport is activated.

Always generate new keys (APPEND)

All selected source rows will be copied into the target table. If source rows contain IDs that already exist in the target table, these rows will be inserted with new IDs into the target table.

Clear all target tables (TABLE_REPLACE)

Clears the target table entirely before inserting all selected rows from the source into the target table.

Delete existing rows (DELETE)

Deletes all selected rows in the target table if the IDs of the source and target table are equal and if the column value is not referenced by other rows. Otherwise, the rows will be discarded. This is only possible for table copy tasks with SQL data transport.

Do nothing (NONE)

No rows will be deleted or applied from source to target. Useful especially for adjusting fill mode for individual tables.

Insert and on key collision discard source rows (INSERT)

Inserts all rows from the source table into the target table if the IDs of the source rows do not exist in the target table yet. Otherwise, the rows will be discarded.

Insert and on key collision update target rows (MERGE)

Source rows with IDs that already exist in the target table will update the rows in the target table. Source rows with IDs that do not yet exist in the target table will be inserted in the target table.

Update only rows with existing keys (UPDATE)

Updates all selected rows in the target table if the IDs of the source and target table are equal. Otherwise, the rows will be discarded.

Incompatible action

incompatibleAction

Enum

ABORT

Defines XDM behavior, when source and target table structures are deemed to be incompatible.

Abort task (ABORT)

The task execution terminates immediately when one or more tables are incompatible.

Skip table (SKIP)

The task execution copies only those tables that are compatible. Incompatible tables will be skipped.

Performance supervision

jdbcProfiling

Boolean

false

Activate the performance supervision in the associated task template (all task types are supported). If this option is activated certain warnings in the task logs will be activated and profiling statistics for JDBC queries are logged. They are available through a task execution export in the task folder files/performanceSupervision.

Log level

logLevel

Loglevel

INFO

Controls the granularity of the log messages for the XDM task issued directly by XDM. The number of log messages decreases in the following order: Trace → Info → Warning → Error

To keep the size of the output small, set the log level to the default value Info, unless there are errors that you need to diagnose, which require more detail than that provided by log level Info. The log size is set to 10MB by default. To modify the log size, use a custom parameter with the name modifiedLogSize. The value must be the desired size in bytes. After the log size is reached, the last log entry will notify the user that the log size has been reached and a hint that the full log can be downloaded via exporting the task execution.

It is also possible to overwrite the log level in specific program parts. This can be done by adding the prefix logger.level. + package name via a task stage hook to the global property map. For example, to set a specific log level to all components of the package de.ubs.xdm.batch.subsetapply you have to set the property logger.level.de.ubs.xdm.batch.subsetapply with the wanted required log level. inside a task stage hook. Supported values are info, warning, error, verbose and debug. A example how to set a property in a task stage hook can be found here. Typically, the support team will instruct to set a package log level for detailed analysis if necessary.

Possible values are:

Error (error)

The least fine granularity. Only severe error messages that cause the task to terminate are written to the log file.

Info (info)

The most important messages about the progress of the task are written to the log file.

Trace (verbose)

Additional messages without any messages for debugging purposes are written to the log file.

Warning (warning)

The log file contains warning messages that may or may not require user attention.

Modification set

modificationSet

ModificationSet

n/a

The property contains a list of modification sets that can be used to modify data during the task execution. For every modification set it is also stored, if it is selected or not. Only selected modification sets are shown in the view mode of the object.

Modification validation

modificationValidation

Boolean

false

By enabling this property, values affected by modification methods will be checked if they can be inserted in the target. The task will abort if this is not possible.

Enable resume cache for data apply

resumeSubsetApply

Boolean

true

Allows a task to be resumed in the final stage, where the data is written to the target. With this option enabled, a task which fails or is canceled can be resumed at the last written row. The option ensures that rows will not be applied twice. When this option is disabled, then a canceled or aborted task will be resumed from the beginning. Whether rows are applied twice in the target then depends on the Fill mode setting.

This property increases the runtime and storage usage. To improve runtime and storage usage, this option should be disabled.

Row selection mode

rowSelectionMode

Enum

QUERY

The row selection mode defines how the keys, which will be used to select rows in the start table, are to be determined. The condition defining the start value selection will be stored in the Start Condition.

File (FILE)

Keys to select from the start table are stored in a file.

None (NONE)

This is the default row selection mode within the application model version and means that the start condition of the row level task template should be used.

Number of rows (NUMROWS)

A fixed number of rows will be selected randomly from the start table.

Percentage (PERCENTAGE)

A fixed percentage of rows will be selected randomly from the start table.

Query (QUERY)

The rows to select in the start table will be selected by setting an SQL query.

Version (VERSION)

The settings of the start condition are taken from the version of the application model, which is configured via the environment. The row selection mode Version is only available in the row level task templates.

Source environment

sourceEnvironment

Environment

n/a

Specifies the environment that is used as source environment in the task. A source environment must be set in either the task template or the task. If it is set in both, the environment set in the task is used.

Start condition

startCondition

String

n/a

The start condition defines, depending on the row selection mode, which or how many keys will be used to select rows in the start table. Depending on the row selection mode, the start condition will be set as follows:

Select number of rows

The start condition is a non-negative number of rows.

Select percentage of table

The start condition is a decimal value between 0 and 100, standing for the percentage of rows that are chosen from the start table.

Specify query

The start condition is an SQL SELECT query. This query must be a valid SQL statement in the source system without a semicolon at the end. It is possible to create WHERE conditions over joined tables for the start condition.

Read from external file

The start condition is a CSV file containing selection values.

The file is stored as a file object in XDM and is set as the Start condition CSV file. The property Columns in file contains a comma-separated list of columns from the start table. This list defines, how the columns defined in the start condition file are mapped to the columns of the start table.

Start condition CSV file

startConditionFile

File

n/a

The start condition CSV file contains selection values that should be used to select data in a row level processing task. The property is only used, if row selection mode File is selected.

You can choose an existing XDM file object containing the selection values, or you can upload a new one. If a new file is used, it will be stored as a CSV file in XDM.

When using a CSV file for a start condition, the following requirements must be met:

  • The file has to use UTF-8 encoding.

  • Each selection value must be written on a separate line.

  • Duplicate selection values and selection values that do not have a match in the start table will be ignored.

  • If the selection values are chosen from multiple columns, these must be written on the same line separated by a delimiter.

  • The delimiter is set as a property of the XDM file object.

  • The delimiter must not be part of the column value.

  • The order of the selection values must match that of the columns in the Columns in file property.

The list Columns in file defines which columns are used in the file.

Columns in file

startConditionFileMapping

String

n/a

Contains a comma-separated list of columns from the start table. This list specifies, how the columns defined in the start condition file are mapped to the columns of the start table.

Subset apply discards aggregation

subsetApplyDiscardsAggregation

Boolean

true

Defines, whether discards should be aggregated in the report or not. If set to true, all discards during subset apply will be aggregated. Otherwise, the discards will be listed per row.

Subset apply thread count

subsetApplyThreadCount

Number

1

Defines the maximum number of threads to be used in subset apply to insert data into tables in parallel. Higher numbers can reduce run time, but increase CPU and memory load.

Tags

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.

Target environment

targetEnvironment

Environment

n/a

Specifies the environment that is used as the target in the task. A target environment must either be specified in the task template or in the task. If it is specified in both, then the environment specified in the task is used.

Task execution report

taskExecutionReport

TaskExecutionReport

n/a

This list defines which reports are created at the end of an execution and are displayed in the task execution. The list includes all defined reports to which the current user has READ access. The selected reports are generated at the end of a task or workflow execution.

If a workflow template calls one or more tasks, only the reports that were defined on the workflow template are generated. The reports that have been specified for the respective tasks are not generated at the end of the execution.

Toleration mode

tolerationMode

Enum

1

If a source table differs in structure from a destination table you have to specify how differences are treated while copying it from source to target. The values are still written to the target database as they are. It depends on the handling of the database if there is a truncation or an error message. It is necessary to use a modification rule on the respective column to implement a proper data truncation.

Allow truncation (2)

Target columns are tolerated even if copying the data can lead to truncation or errors in the target.

Prevent truncation (1)

Only columns that can hold equally large or larger values are tolerated in the target.

Strict (0)

No differences in structure of source and target table are allowed. If source and target table differ in structure, the copy process will stop.

Trace data configuration

traceDataConfiguration

String

n/a

This property specifies a list with one or more values which should be traced during XDM task processing. If multiple values are specified, these should be separated by semicolons. The specified values are reported in a trace data report at the end of a task stage in which the value was detected. Reported are the rows of a table in which one of the specified values occurs in any of the row’s columns, whenever that row is part of an INSERT, UPDATE, DELETE, or SELECT action.

If a specified value is detected in a stage as part of one of the above named actions, then the row in which it occurs is reported in the trace data report at the end of that stage. In the event that a specified value is affected by a modification method, the row in which it occurs is reported in the trace data modification report.

Use unmodified keys for update

useUnmodifiedKeysForUpdate

Boolean

false

Defines whether XDM should use the unmodified keys for generating update statements instead of the modified keys, which is the default behavior for the modification of key columns. This property only has effect if a modification rule is defined on a key column and scope of the modification is set to scope target.

It is not possible to update a key to a value that already exists in the target table. Furthermore, this mode is currently only supported for the fill mode Only update existing rows. This mode is incompatible with filtering of values in modification methods.

Using aliased tables

usingAliasedTables

Boolean

false

This property enables a task to use an alias on a table as a replacement for this table. This is useful in the following scenario: You have defined a uniform application model that names tables in the rules. In a certain environment the tables are named differently and have an alias for the original name. Then XDM creates a virtual table object in the task process under the name of the alias, and the column list of the underlying table.

When Using aliased tables is set to true, it is not possible to generate DDL with XDM, because the DDL generator does not recognize, if the table is an aliased table or not and will create wrong DDL. Therefore, the Drop option must be set to Drop nothing and create nothing in this case. Otherwise, an error occurs, and the task execution will be aborted.

Using viewed tables

usingViewedTables

Boolean

false

Using viewed tables controls when views should be handled like tables. In the event that a view references another view or an alias, XDM will follow the chain of references to a depth of 5 steps by default. You can control the selection depth by setting a custom parameter objSel_viewSelectionDepth with your preferred value.

Views can be used as a source in most cases, even if they are based on multiple tables or using functions to modify column values. For target usage, only views can be used that are based on a single table and reflect the columns without modifying any value. Please refer to the definition on deletable views, insertable views and updatable views of the database system documentation. When inserting on a view, the view will receive the DELETE, UPDATE and INSERT statements and the database system evaluates if the operation is permitted.

This property is currently in prototype state and only works with Db2 for z/OS and Db2 for LUW. It is not guaranteed that the property can handle all use cases.
When Using aliased tables is set to true, it is not possible to generate DDL with XDM, because the DDL generator does not recognize, if the table is an aliased table or not and will create wrong DDL. Therefore, the Drop option must be set to Drop nothing and create nothing in this case. Otherwise, an error occurs, and the task execution will be aborted.

Actions

The available actions are described below. Some actions apply to the list, while others are specific to selected task templates.

List Actions

The following actions are available on the task templates 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 Create Permission

  • Bulk Delete

  • Bulk Export

  • Create

  • List History

Create a new permission on the selected objects. Shows in the result list whether the permission could be granted on the respective object. Only these permissions can be granted that are existing on the underlying object.

A permission in the result list can have three different states, these are:

CREATED

The permission successfully granted on the object.

MERGED

The granted permission already exists on the object and merged with the new permission.

SKIPPED

The permission could not be granted, because of missing administration permission on the object.

The following permissions are required on the list:

  • ADMINISTRATION

  • READ

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:

  • DELETE

  • READ

Exports the selected objects.

YAML

Generates a YAML file containing all the object’s settings. The user has the option to download the export file, or to paste the content in the import dialog. The YAML export is particularly suitable for importing the exported objects again via the XDM UI.

ZIP

This export writes several individual YAML-files. Each YAML-file is stored in a directory according to its type. For example, when exporting a native table backup task template named 'A backup template', a YAML-file 'A backup template.yaml' is created inside the directory /TaskTemplate/native-table-backup-task-template/ of the ZIP-file. This kind of export is suitable for usage in git-repositories together with XDM’s configuration as code feature.

Related and dependent objects can optionally be included in the export. The export dialog has the following options:

Include dependent objects

Dependent objects only belong to the exported object like rules and tasks.

Include permissions

Permissions of each exported object, only when the object supports permissions. Some objects like rules don’t have permissions.

Include referenced objects

Referenced objects exist by their own and are used in the exported object like connections and environments.

Include objects that depend on referenced objects

Also include the dependent objects of the referenced objects. E.g. the rules of a modification set or the rules in an application model version.

Objects on which the user does not have READ permission are not exported. This includes dependent and referenced objects. However, the reference to an object will be exported. For example a connection object would refer to the credential, even if the user does not have READ permission on the credential. The definition of the credential object itself will not be part of the export file. This can lead to issues during the import, because the connection cannot be created without an existing credential.

The following permissions are required on the list:

  • READ

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

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 task templates. 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

  • Delete

  • Duplicate

  • Edit

  • Event List

  • Export

  • Object History

  • Permission Check

  • Usage

  • Uses

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

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:

  • DELETE

  • READ

Will create an exact copy of the current object with a different display name in the same list. Users can decide whether they want to copy child objects like rules, permissions or tasks. It is only possible to select complete classes of objects and not to select individual child objects. Copied child-objects will preserve their display name. The default is to copy all child objects.

The following permissions are required:

  • CREATE

  • READ

Opens the current entity in edit mode.

The following permissions are required:

  • READ

  • WRITE

This list shows all registered events for the object. It includes events that are specific to the object, or for that type.

The following permissions are required:

  • READ

This action allows to export XDM objects in different formats in order to import them via export or CasC in another environment.

Refer to configuration of export for more information.

Related and dependent objects can optionally be included in the export. The export dialog has the following options:

Include dependent objects

Dependent objects only belong to the exported object like rules and tasks.

Include permissions

Permissions of each exported object, only when the object supports permissions. Some objects like rules don’t have permissions.

Include referenced objects

Referenced objects exist by their own and are used in the exported object like connections and environments.

Include objects that depend on referenced objects

Also include the dependent objects of the referenced objects. E.g. the rules of a modification set or the rules in an application model version.

Include implicit created objects

Implicit created objects are tasks or workflows which were automatically created for execution. These objects won’t be exported by default, but can be included by setting this flag. When exporting implicit objects, make sure that the Include dependent objects flag is also enabled.

Objects on which the user does not have READ permission are not exported. This includes dependent and referenced objects. However, the reference to an object will be exported.

For example a connection object would refer to the credential, even if the user does not have READ permission on the credential. The definition of the credential object itself will not be part of the export file. This can lead to issues during the import, because the connection cannot be created without an existing credential.

The following permissions are required:

  • READ

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

The check verifies that the current user has the authorization to access the object. The check can also be performed for a specific user or role, if needed. By default, the check is performed using the current user’s credentials. It is then applied to child and referenced objects.

Additional permission checks are applied when these can be inferred from the context in which the check was started. For example, if the check is performed on a table copy task, the referenced source and target connections are checked to determine whether the given identity has source or target usage permission respectively.

The following permissions are required:

  • READ

The Usage List shows all objects that refer to the current object. It provides an overview of the relationships and makes it easy to track these relationships.

The following permissions are required:

  • READ

The Uses List shows all objects that the current object uses. It provides an overview of the relationships and makes it easy to track these relationships.

The following permissions are required:

  • READ

License Options

This object is available if the following license option is enabled:

  • TASK_TYPE:SUBSET_TASK

The object is also available if the license package is at least: ESSENTIAL.

Special cases

There might be some special cases to change some values in the target e.g. table name or column name. To do this, a stage hook can be used. The hook creates mapping rules for RLP tasks. A detailed description, how to use the hook can be found here.

Prerequisites

To complete the configuration of an XDM row level task template you need to set up an environment. This involves a connection with credentials, an application model with a version, and one or more installed applications where one is marked as the start model.

Required permissions

Users

During a task execution a row level processor task uses one user for each installed application of source and target environment:

  • Source database user, defined in the credential of the connection that is used in an installed application of the source environment.

  • Target database user, defined in the credential of the connection that is used in an installed application of the target environment.

Authorization for users

Authorization for source database user

  • SELECT authority for the database catalog

  • SELECT authority for the tables to be copied

  • DB2 LUW only: System monitor authority (SYSMON) to obtain information from the database catalog (optional, but recommended)

  • MS SQL Server only: The user must be a database user, a domain user is not sufficient

Authorization for target database user

  • SELECT authority for the database catalog

  • INSERT/UPDATE/DELETE authority to write into data tables

  • Authority to execute DDL (only required if database objects are to be created)

  • DB2 LUW only: System monitor authority (SYSMON) to get useful information from database catalog (optional, but recommended)

  • MS SQL Server only: The user must be a database user, a domain user is not sufficient

  • Oracle only: If batch mode is used, CREATE TABLE authority is required to create the error table to store potential discards.

Free space for storage

  • Enough physical free space on the target database server.

  • Enough logical free space in the target database.

  • Enough physical free space on the Execution Server.

XDM Permissions to execute a task

The user needs the following permissions to successfully start the task execution:

  • READ permission on the task and task template,

  • EXECUTE permission on the task,

  • SOURCE_USAGE on the source environment,

  • TARGET_USAGE on the target environment,

  • READ permission on any credential used in the connections linked in the installed applications,

  • READ permission on any application model linked from the environments,

  • READ permission on any modification set linked to the task, task template, connection, environment, or application model version,

  • READ permission on any modification method used in the linked modification sets, and

  • READ permission on any custom parameter used in the task template.

Limitations

  • Foreign key reference cycles can not be resolved during the data apply, if

    • the cycle involves multiple tables

    • and none of the involved reference columns are nullable.

Task procedure

An XDM row level processor task contains six stages. Before executing stage 1, XDM will create all necessary files and folders in the task directory during the tailoring process.

Tailoring

All necessary files and folders are created in the task directory.
The following reports are generated by this stage.

Stage 1

The structure of the source environment is stored in task files. XDM fetches information about the start table and all tables related by data relation rules. Tables and columns that match any exclude rule will not be in the task’s selection set.
The following reports are generated by this stage:

Stage 2

XDM extracts the data from the source environment and copies it to a file on the execution server. The data selection is made by using SELECT statements, starting at the start table with the start condition. Depending on the definition of data relation rules, data from the child and parent tables will also be selected. During the extraction process, all modification rules where the scope is Source are applied. Those rules are taken from a definition of the modification set in the task template itself, the installed application definition, the application model version or the connection.
The following reports are generated by this stage:

Stage 3

The structure of the target environment is stored in task files. For each table in the source environment, XDM fetches information about the corresponding target table. Exclude rules with scope Target can further reduce the selection set.
The following reports are generated by this stage:

Stage 4

XDM compares the structures of the source and target environments.
The following reports are generated by this stage:

Stage 5

XDM processes all modification rules where the scope is Target. Those rules are taken from a definition of the modification set in the task template itself, the installed application definition, the application model version, or the connection.
The following reports are generated by this stage:

Data reservation hook

Before the final data will be inserted into the table rows, the data reservation hook verifies that there is no data reservation for the rows to be written or the user has the permission to overwrite these rows.

Stage 6

XDM inserts the data into the target tables After the execution, working files are deleted to save storage space.
The following reports are generated by this stage: