PreProcess Variables and Parameters
Parameters/Arguments:
VIP uses the concept of Arguments (passed by the user when a workflow is invoked either from command line or from Modeller)
Note: The terms Parameter and Argument may be used interchangeably in this document.
Variables:
Variables can be evaluated using a valid VIP expression e.g. System.DateTime.Now or RandomHelper.GetRandomInt(10, 20) and can be used while generating data for columns.
Both Variables and Parameters can be referred in Column level data generation and Event Hooks and can be combined with other Parameters & Variables as long as the final expression is a valid VB.NET expression.
Using PreProcess Variables to Query Databases and using the Queries in Data Generation functions.
In general, this process is useful to load master data that is used in data generation e.g. list of countries or list of data from any other table in database etc.:
Go to the PreProcessVariables tab
Remove varExisting_OrderItem
Also remove the following:
varExisting_Country
varExisting_Customer
varExisting_Order
varExisting_Supplier
varExistingProduct remains in the sheet
Note: The TYPE is very important! See the specified Type in Type Column:

Now we can see the above whenever we are generating a Customer
Go to OrderItem sheet where

The third row contains:
OrderItem ProductID RandomHelper ……….varExisting.Product).id
…but we don't know which product we are using.
So create varProduct variable in PreProcessVariables tab in row
varExisting_Product Scope column has Customer
Using 'Add Model' variables to create PreProcess Variables
Since we deleted all the variables (see previous section) in the PreProcessVariables sheet, we no longer have access to the Supplier variable so if we want to add a variable, we can use 'Add model' variables menu (upper right) by selecting the object that we want to use in the PreProcessVariables sheet.
Add Variable Example
In the PreProcessVariables sheet, add a new row:
varExisting_Country

The new Model created and it can be utilized:

…but because the Column Name and 'Country' has the Country Column, we must do this:
The Column names must be prepended with an underscore because the table and column cannot be seen otherwise. If you have a look in SQLManager, you will see that the variable in the Database is the same.

Using Parameters to set Max/Min Values for Data Generation
Example
Go to the Product Tab
If we have a look at the UnitPrice. Parameters can be used to supply Values.

In the PreProcessVariable tab, declare 2 new variables:
parMinPrice
parMaxPrice
Define Function column as Parameter, Type Int32 for both.
Set IsParam to YES.
[Filled in values 100, 1000] Use this min/max on price when generating the product.]
[In Product tab–>FunctionParameters Column, UnitPrice row, input parMinPrice and parMaxPrice.] See last figure.
These constants will be used in the generation.
Overview of the Types of PreProcess Variables and Using Scope
Preprocess variables can be very useful and give the user more flexibility in manipulating data. They allow the user to store values/calculated values that they would like to use in another calculation. So for example we could create a preProcessVariable called OrderItemTotal that is the OrderItemPrice * the NumberOfOrderItems :
OrderItemTotal = OrdertemPrice * NumberOfOrderItems
This value could then be saved and used in the calculalation the Total Amount of an Order.
Go to the PreProcess Variable Tab
Look at Type* Columns
Note: Types are 'typical' data types such as 'String', 'Boolean', 'Int32' and any Types defined in Generated Model
Examples
Product
Different Models from other Generated Models.

Scope (Scope Column) defines whether to re-initialize or not and whether it should be done once or each time it's used.
TEST DATA AUTOMATION SYNTHETIC TEST DATA GENERATION