Masking engine

The Masking engine activity hosts the masking process with one or more registered iterators.

Table of contents


To use the Masking engine activity drag it to the workflow. Masking iterators and related activities can then be used by placing them within the Masking engine activity. Note that every instance of this activity must be contained within a step activity for the package to be valid for publishing to the BizDataX Portal. Furthermore, if you place a table masking activity on your workflow, a masking engine will automatically appear around it if you didn't place it in one.

More control over the masking process can be gained by changing the properties of this activity. IteratorSchedulerType controls the order in which iterators will execute in a non-parallel masking engine (i.e. if MaxParallelIterators is not set or set to one). Options for this property are the following:

  • ExhaustOne - iterators run one at a time in the order they are defined in
  • QueueBalancing - iterators run one at a time, but those with more items in the queue are prioritized
  • RoundRobin - all iterators have the same chance to run

SliceSize determines the number of records to process in each batch if batching is used for processing iterators. The same value must be set in the database handler settings as well. ContinueOnIteratorFail controls whether the masking engine will throw an error if an iterator fails, or continue the masking process with other iterators. Errors will be logged in both cases. Lastly, MaxParallelIterators allows you to set the number of iterators that can run in parallel. If not set, it defaults to one (i.e., no parallelism).


Let's assume that we want to mask the Customer and Address tables. We place the Masking engine activity on the workflow and then place the Customer masking and Address masking activities within the same masking engine. We want these two tables to be masked in parallel, so we change the MaxParallelIterators property to 2 and leave other properties as they are.

Masking engine example Figure 1: Masking engine example


Property group Property name Description Example
Input properties IteratorSchedulerType The type of iterator scheduler which controls the order of iterators in non-parallel executions. IteratorSchedulerType.RoundRobin
SliceSize The number of records to process in each batch if batching is used. 10000
Misc ContinueOnIteratorFail Whether package execution should fail if an iterator fails. true or false
DisplayName Display name of the activity in the workflow. Masking engine
Parallel MaxParallelIterators Maximum number of iterators that are able to be executed in parallel. 2