This article explains how the Data Processor Rules Engine (DPRE) works within the Snow Inventory Server. It describes how to define and use rules in the DataProcessorRules.xml file to normalize text-based attributes from Inv3X documents. The document focuses on rule definition and usage, not the interpretation of Inv3X attribute values themselves.
The Snow Inventory Server includes a Data Processor Module that reads data from .snowpack or .inv files and processes it before writing it to the database. These files are structured as XML and contain platform-specific attributes that can vary widely depending on the operating system. Since agents on different platforms collect data in different ways, normalization is necessary to interpret the information consistently. For example, identifying if a system belongs to the iOS family may involve checking both the IsMobileDevice attribute and the operating system name.
Functional design
DPRE is used to normalize incoming data across four use cases:
- Identifying the operating system family (OS type)
- Determining whether the OS is a server edition
- Detecting whether a device is a virtual machine and identifying its hypervisor
- Normalizing Oracle product versions and editions
DPRE runs after hardcoded rules are evaluated. If no hardcoded rule applies, DPRE looks for a matching rule in DataProcessorRules.xml. If no rule matches, the system writes a default value (such as 0 or NULL) to the database.
Rules are defined using XML with logical expressions that compare attribute values from Inv3X elements. The rule file is typically stored in the SIS installation directory. A custom file path can be specified using the -data-rules-file <path-to-file> option.
Structure of custom rules
Each rule has the following components:
- Type: Defines what the rule evaluates (like
VirtualMachineType) - Expression: A boolean logic expression (using AND, OR, NOT)
- Input parameters: Text comparisons with values from Inv3X attributes
- Output parameters: Values to write if the rule matches
Rules are grouped by type in separate sections. Mixing rule types within a section is not supported. The expression compares results from input parameters, using logic to evaluate whether a rule fires.
If a rule evaluates to true, DPRE stops processing further rules and returns the result. If not, it proceeds to the next rule.
Types of rules
1. VirtualMachineType
Detects whether the Inv3X file came from a virtual machine using attributes from Client and OperatingSystem tags.
|
Input parameter |
Inv3X tag |
Tag’s attribute |
|
Model |
Client |
Model |
|
ClientType |
Client |
ClientType |
|
Manufacturer |
Client |
Manufacturer |
|
OperatingSystem |
OperatingSystem |
Name |
As a result of normalization, this rule can return one or more output parameters which will substitute the initial data in inv3X document before writing to the database:
|
Output parameter |
Inv3X tag |
Tag’s attribute |
|
Model |
Client |
Model |
|
ClientType |
Client |
ClientType |
|
Manufacturer |
Client |
Manufacturer |
|
HypervisorName |
Client |
HypervisorName |
|
IsVirtual |
Client |
IsVirtual |
2. OperatingSystemType
Identifies the OS family (such as Windows, Linux). Used when creating ClientContext.
|
Input parameter |
Inv3X tag |
Tag’s attribute |
|
IsMobileDevice |
Client |
IsMobileDevice |
|
ScannerVersion |
Client |
ScannerVersion |
|
IsExternalProvider |
Client |
ClientType == “SIEDP” |
|
OperatingSystem |
OperatingSystem |
Name |
|
ClientType |
Client |
ClientType |
3. ServerOperatingSystemType
Checks if the OS is a server edition. Used in OperatingSystemElementProcessor.
Input parameter:
- OperatingSystem
This rule type has no output parameters—it returns true or false.
4. OracleDatabaseType
Normalizes Oracle product name, version, and edition using the ProductName attribute from the OracleDbTechnology tag.
Input parameter:
- ProductName
Output parameters (if matched):
- EvaluatedName
- Version
- Edition
Related Articles
Where can I find documentation on Data Processor Rules Engine (DPRE)? 12Number of Views Understanding the Data Processing and Announcements Processing folders in Snow Inventory Server 13Number of Views Release Notes Index: Snow Inventory Server 520Number of Views Snow Inventory Server: Consolidate data from different sources 19Number of Views Oracle Verified - No data was processed by Snow Inventory Oracle Middleware Scanner 72Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Case id: 00001065
Activity: Status change: 2 hours ago