The New Row-Internal Synchronization Rule Form
Published 23 March 2018
The Data Masker Create/Edit Row-Internal Synchronization Rule Form
This form is used to create and edit Data Masker Row-Internal Synchronization rules. Row-Internal Synchronization rules are designed to update a specified column in a row with a combination of values from other named columns within the same row. Values from datasets can also be used as replacement data. The title text and button label on the form will change as is appropriate to the create or edit mode. In the example screen shot above, the form is editing an existing Row-Internal Synchronization rule.
A Row-Internal Synchronization rule must be configured with a target table and column name and some SQL code (called a Replacement Clause) which constructs the new values for each row in the target column. The construction of a replacement clause is similar to that which would be used in a conventional SQL UPDATE statement. In the example above, the EMP_ID field is being built with a concatenation of the first three letters of the LAST_NAME column and a numeric value supplied from the Numbers, Integers, (Random As Text) dataset.
Configuring the target table and column is a straightforward process. Use the mouse to select the table and column from the Table and Column tab. The choice of available tables is entirely determined by the Rule Controller with which the Row-Internal Synchronization rule is associated. Only tables from within the schema for which the Rule Controller is configured will be visible. If you do not see the tables you require, the schema structure can be refreshed using the Refresh Schema and Indexes button on Options tab of the edit Rule Controller form.
The Replacement Clause is entered in the lower right hand panel. It is structured as a SQL Clause and can reference the other columns in the row by name or use the DMOPARAM pseudo column to reference values from the datasets. The Row-Internal Synchronization rule help file discusses these concepts in detail.
During execution, as the Row-Internal Synchronization rule processes each row, the generated replacement values will be substituted in place of the existing data in those columns. The Row-Internal Synchronization rules help file has more information and examples.
Note: it is not always necessary to reference column values from within the row in the Replacement Clause. It is possible to call a previously defined function or stored procedure. A Command rule can be used to create the function or stored procedure if necessary.
The Row-Internal Rule Where Clause Tab
Where Clause and sampling options are configured on the Where Clause tab and provide options which can be used when the choice of rows affected by the operation is to be based on a specific criteria. The Where Clause and Sampling help file contains a detailed discussion of these options. In the above example the NOT NULL option is set. This means that only the rows in which the EMP_ID value is NOT NULL will be affected by the masking operations.
Important Note: If multiple Row-Internal rules are being applied to the same column (each with a different Where Clause) then the Where Clause Skip avoidance technique discussed in the Where Clause and Sampling help file must be used. This methodology will ensure that implicit assumptions about the data content (for example, a GENDER field always contains only 'M' or 'F' when in fact some are NULL) do not result in some data items not having masking operations applied to them.
The Row-Internal Synchronization Rule Error Manager Tab
Usually any error returned by the running masking rule will cause the running masking set to halt and no further rules will be run. Occasionally it is desirable to "handle" such errors and permit execution on other rules to continue. For example, a common reason to ignore errors are masking rules which act on a table which may not be present in the target database. In the sample above, the rule is configured to ignore any errors which contain the text ORA-00942 or table or view does not exist. Any errors which do not contain this text will still cause the masking operations to halt.
The Row Internal Synchronization Rule PKFK Change Tab
Sometimes it is necessary to mask the data in a primary key column of a table and to "fan-out" these changes to other tables - perhaps to ensure foreign key or logical relationships are kept intact after the masking process completes. Normally this action is performed by a Table-to-Table Synch. rule - however if multiple tables are involved, the synchronization process must necessarily ensure that the same values are updates. This can be done manually by creating a temporary correlation table which maintains the relationship between the original value and the newly masked values or, as is much easier, the Row Internal Synchronization rule can be converted into a PKFK Change Manager rule which automates the process. The PKFK Change Manager help file contains a detailed discussion of this process.
Existing Row-Internal Synchronization rules can be edited by double clicking on them with the mouse. Row-Internal Synchronization rules are created by launching the New Row-Internal Synchronization rule form using the New Rule button located on the bottom of the Rules in Set tab.
How to Create a New Row-Internal Synchronization Rule