Data Browser
Overview
The Data Browser window shows a sample of the actual data values on the database and can also show a preview of what masked values could be generated by a masking Project, as well as reviewing the actual 'before' and 'after' masked values after a masking Run has completed.
You can think of the Data Browser as supporting two View modes:
Normal View Mode
The Normal View displays the data values that are on the database for the currently selected table .
The example below shows a data sample for the currently selected table kona.sales.Customer.

You can temporarily rearrange the order of columns by clicking on a heading and dragging it to a new position. When the table or column focus is changed then the column order shall revert to its configured setting.
You can permanently define the column appearance order and even which columns should appear or be omitted as described in the Data Browser Settings section below.
You can click on a column heading to sort the rows in the Data Browser.
Masking View Mode
The Masking View shows the before and after masking values for tables that have at least one mask defined (i.e. a "masked table.")
If a masked table is currently selected then only the masked columns are shown if the display setting is Automatic in the Masking View settings tab (see Data Browser Settings section below). You can override this by choosing the Manual setting and selecting which before and/or after columns you would like displayed and their order.
If an unmasked table is currently selected then the display for that table shall be the same as Normal View.
The Masking View mode is entered automatically upon completion of a Preview Run, or a Run that specified the option to review masked values, and the Masking View mode's toolbar becomes active in the Data Browser:
You can visit each displayed masked column's 'before' and 'after' value pair by clicking on the Next
or Previous
icons. You can also just select the masked table or column from the Project Explorer tree or Project Diagram as usual.
The original 'before' values appear in columns with a white background whereas the masked 'after' values appear in columns with a yellow background. The masked value's column name shall also have the word "(Preview)" appended if the masked values are the result of a Preview Run and therefore the original values have not been overwritten; or "(Masked)" if the masked values are the result of a masking Run and therefore the original values have been overwritten.
To exit Masking View mode simply click on the "Exit Masking View" button. This will discard all 'before' and 'after' value pairs and Normal View mode shall be resumed for all tables.
Note: The 'before' and 'after' value pairs are retrieved from the DBMS upon Preview Run or Run (with review option selected) completion and are stored within the DataVeil memory space (Java heap) for the duration of Masking View mode only. DataVeil does not store these values anywhere else.
The maximum number of rows that can be displayed for a Masking View is 100 (whereas for a Normal View it is 1,000.) This Masking View range is set in the Preview Run and Run confirmation dialogs only.
You can temporarily rearrange the order of columns by clicking on a heading and dragging it to a new position. When the table or column focus is changed then the column order shall revert to its configured setting.
You can permanently define the column appearance order and even which columns should appear or be omitted as described in the Data Browser Settings section below.
You can click on a column heading to sort the rows in the Data Browser.
"Inherit (NA)" Displayed Masking Value
If you perform a Preview Run using the Quick option then all child dependents of masked values shall be shown as "Inherit (NA)" which indicates that such masked values are not available. This is because since the Quick option only masks a small sample of the parent fields of dependencies then the masked child values may not be available. If you want to preview child dependents' masked values then you must select the 'Complete' option in the Preview Run confirmation dialog. For more information please refer to the Executing Projects section.
Empty Masking View or Missing Rows
If you are performing a Preview Run using the Quick option and are masking multiple columns then it is possible that the Masking View may show fewer rows than the sample size, or the Masking View display can even be empty. Please refer to the Troubleshooting section below for details.
Undisplayable Data
Data types whose values cannot be displayed, such as binary objects and others (e.g. BLOB), shall be shown as its type name italicized on a gray background, as shown in the PRODUCT_IMAGE field in the example below.
Null values for undisplayable data types shall also be shown this way (whereas for displayable types, such as VARCHAR, Nulls shall be shown as "NULL" on a gray background.)

Context Menu
A popup context menu can be displayed by selecting a heading or data row in the Data Browser table.
Many of the usual actions are available for the selected column such as adding a mask, changing a column's Sensitivity and other actions.
An additional useful feature is the "View Value..." action. This action is described in further detail below.
View Value Action
This action will open the value at the selected row and column into a detail view.
If the selected value is in a masking view (the before and after values being displayed after a masking run) then the detail view shall also show both before and after values with the differences highlighted.
Data Browser Settings
You can configure how the Data Browser is displayed and its contents by clicking on the settings icon (the cog wheel) within the Data Browser window.

If a Project table or column has focus then the Data Browser panel shall appear as follows:

The Normal View and Masking View tabs, shown above, refer to the configuration of table columns to be displayed whenever a Project table or any of its child columns have focus.
If none have focus, or a non-Project table or column has focus, then only the General tab shall appear.
General
The General tab is shown above.
Default maximum number of rows to display: This is the maximum number of rows that DataVeil shall retrieve from the database and display in the window during normal view. The valid range is from 1 to 1,000 inclusive. The default is 50. This can be increased on a per-table basis in the Filter tab.
Maximum character length of strings to display: For string (character) type data fields, this is the maximum length that DataVeil shall attempt to retrieve from the database and display. For example, if a field is 2,000 characters long on the database and this setting is 100, then DataVeil shall only show the first 100 characters to indicate that the field is only partially displayed. The valid range is from 10 to 4,000. The default is 1,000. This can be increased on a per-table basis in the Filter tab.
Listen on Sources
The Data Browser shall display sample data whenever a table or field gains focus in the corresponding Source views (indicated by checkboxes.) The default is all Sources are selected.
Normal View
This tab appears only when a table in the Project space is selected.
This tab lets you specify which Project columns are displayed and their order.

Automatic
All columns that are in the Project shall be displayed in their ordinal order.
This is the default setting.
Manual
This option lets you specify which of this Project table's columns should be displayed in the Data Browser and their order when browsing normally (prior to having performed a masking run).
You can drag and drop the relevant columns or you can use the left/right and up/down buttons.
If no columns are selected then DataVeil shall automatically switch to Automatic mode for this table.
If after a Refresh Schema or Migrate Schema a column is no longer found in the new schema then it shall be removed from the Selected Fields list. If this means that all of the manually selected columns no longer exist for the table in the new schema then DataVeil shall automatically switch to Automatic mode for this table.
Masking View
This tab appears only when a table in the Project space is selected.
This tab lets you to specify which before & after Project columns are displayed after a masking run and their order.

If you make a change to the Masking View configuration settings then the changes shall take effect upon the next time you run a masking project. It will not change the view presentation if you are already browsing masked results.
The Available Fields list will show every Project column in this table with both an (O) and (M) version corresponding to Original value and Masked value of each column. This is true regardless of whether a column actually has any masks defined. At run time, DataVeil shall omit from display any manually configured (M) columns if it did not have any masks defined.
Automatic
All columns that had masks defined shall be displayed in before/after pairs in their ordinal order.
This is the default setting.
Manual
This option lets you specify which of this Project table's original and masked value columns should be displayed and their order when browsing after a masking or preview masking run has completed.
You can drag and drop the relevant columns or you can use the left/right and up/down buttons.
If no columns are selected then DataVeil shall automatically switch to Automatic mode for this table.
If after a Refresh Schema or Migrate Schema a column is no longer found in the new schema then it shall be removed from the Selected Fields list. If this means that all of the manually selected columns no longer exist for the table in the new schema then DataVeil shall automatically switch to Automatic mode for this table.
Filter
This tab appears only when a table in the Project space is selected.
Occasionally there are tables where there is a specific interest in viewing specific rows of a table or to simply see more than the default maximum of 1,000 rows that is permitted in the General tab described above.

Select the checkbox to activate the usage of the Where condition and/or Maximum row display limit.
Maximum number of rows to display
This overrides the default maximum row limit, specified in the General tab, for this specific table and it can be set at up to 10,000 rows.
It is suggested to avoid using this maximum limit on a great number of tables because it will slow down responsiveness of the browser because many more rows need to be transferred from the DBMS each time a table gains focus. Furthermore, at times when browser data is downloaded for all tables all-at-once, such as to retrieve before & after values following a masking run, there is a possibility of memory pressure with the worst case being an 'out of memory' Java error.
Maximum character length of strings to display
This overrides the default maximum length of strings, specified in the General tab, to be displayed for this specific table and it can be set at up to 500,000 characters.
The high limit can be useful when examining long text values in the Value Viewer such as for large JSON and XML records,
Important: In general, Maximum number of rows to display X Maximum character length of strings to display should not exceed 20,000,000 and such high values should only be applied to no more than a few tables. i.e. Use such high lmits only for those tables where you really need it. This is to avoid memory pressure with the worst case being an 'out of memory' Java error.
Where condition
This filter provides the flexibility to display those rows that satisfy a Where condition.
For example, if a table is sparse and has very many rows with NULLs then when attempting to preview the masked values using the default browser settings, it may be that only those rows with NULLs will be displayed and would therefore therefore not be useful for the user by not being able to review any masked values in the browser. However, by simply applying a filter such as 'addressLine2 IS NOT NULL' as shown in the screen capture above, this will avoid such a problem and show only those rows that satisfy the Where condition.
Whenever a filter's Where condition is active the word FILTERED shall appear to the right of the table name in the Data Browser window:

Test
The Test button will validate that the Where condition has no errors.
Troubleshooting
Why are some columns missing in the Data Browser?
The Data Browser shows only columns that are in the current scope. For example, if you have selected a table in the Project explorer tree then only those those table columns listed in the Project explorer tree shall be shown. Please check under the DBMS tab's explorer tree to see if the missing columns appear there. If so, you can either view them there by clicking on the table under the DBMS tab's explorer tree, or right-click on the table and use 'Add to Project' to move them from the DBMS explorer tree to the Project explorer tree.
Empty Masking View or Missing Rows
If you are performing a Preview Run using the Quick option then it is possible that the Masking View shall show fewer rows than the sample size, or the Masking View display may even be empty.
If this happens then it will typically occur when there are multiple columns in the table being masked.
This is because each column is masked by independent threads and the resulting view is constructed from the result rows of each of those threads. Only those rows that are common across all of those threads (masked columns) will be displayed. For example, if two columns were masked in a table of 1 million rows and the DBMS happened to return TOP (or LIMIT) 1000 for the first 1000 rows for one column, and for the other column it returned a different set of 1000 rows, then DataVeil is unable to stitch these together to display complete rows in the Data Browser. Incomplete rows are not included in the masking preview display.
This can also happen if the user has specified conditional masks in each column that select different row ranges. Similarly in such a case, DataVeil cannot construct complete result rows and therefore those partially masked rows will not be displayed.
Example:
Consider two columns being masked with unconditional Redact masks, where all rows in column COL_A are redacted with 'X' and all rows in column COL_B are redacted with 'Y'.
After performing a Quick Preview Run we may get a full sample result of 20 rows:

Now, consider a Where condition is applied so that only the first 10 rows of COL_A are masked, fewer sample rows are shown in the masking preview. This is because DataVeil was only able to construct complete result rows (across all fields) for only the first 10 rows due to the 'Where pk < 10' condition.

Furthermore, if another Where condition is applied so that the first 10 rows of COL_A are masked and the first 10 rows of COL_B are NOT masked then no rows shall be displayed. This is because DataVeil is unable to construct any complete result rows across all columns. This situation would occur for tables only when Quick Preview Run is performed on the table and it only affects how preview rows are displayed in the Data Browser. i.e. If a Complete Preview or an actual Masking run is performed then all result rows would be available for display.

As a reminder, this can occur even when there are no Where conditions because the same effect will occur if the DBMS happens to choose different row ranges (implemented as SQL TOP or LIMIT limits) for each masked column when Quick Preview is used, resulting in no common rows across the masked columns which means no rows can be constructed for display in the Data Browser for that table in Quick Preview. However, you can force the DBMS to choose common row ranges for all masked columns in the table by specifying a WHERE condition in the Data Browser Filter, as described above.