|
Topics: |
|
How to: |
This section describes how dimensions and measures are created and maintained in Omni Designer. For more information, see the Omni Designer User Guide.
The dqconfig.xml file is created when the bundle is deployed to Omni-Gen. It reflects the structure of dimensions, measures, and rules defined in Omni Designer.
The original location of the file can be found in:
…/omnigen/OmniServer/bundle/artifacts/server/index/dqconfig.xml
Important: Do not edit this file. It is used for familiarization purposes only.
The following syntax shows a sample dqconfig.xml file.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dqconfig>
<dimensions>
<dimension>
<properties>
<name>Validity</name>
<default>false</default>
</properties>
<model name="Customer">
<subject name="Customer">
<subject name="Address">
<subject name="level3">
<subject name="level4">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject> <subject name="Phone">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic>
<and>
<and rule="DOB_Not_Empty"/>
<and rule="Name_Not_Empty"/>
</and>
</logic>
<business>
<impact measure="ProductionCapacity">1.0</impact>
<impact measure="Revenue">11.0</impact>
</business>
<rules>
<rule id="DOB_Not_Empty">false;</rule>
<rule id="Name_Not_Empty">false;</rule>
</rules>
</source>
<instance>
<logic>
<and rule="first_name"/>
</logic>
<business>
<impact measure="ProductionCapacity">2.0</impact>
</business>
<rules>
<rule id="first_name">($.get('firstName') == '11')? true : false;</rule>
<rule id="ssn">($.get('ssn') != '11')? true : false;</rule>
<rule id="email">($.get('email') == 'NULL')? true : ($.get('email') == '')? true : false;</rule>
</rules>
</instance>
</subject>
</model>
<model name="Person">
<subject name="Person">
<source>
<logic/>
<business/>
<rules/>
</source> <instance>
<logic>
<and rule="qqq"/>
</logic>
<business>
<impact measure="Revenue">1.0</impact>
</business>
<rules>
<rule id="qqq">($.get('string') == 'NULL')? false : false;</rule>
</rules>
</instance>
</subject>
</model>
</dimension>
<dimension>
<properties>
<name>Conformity</name>
<default>false</default>
</properties>
<model name="Customer">
<subject name="Customer">
<subject name="Address">
<subject name="level3">
<subject name="level4">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source> <instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<subject name="Phone">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic>
<and rule="ssn"/>
</logic>
<business>
<impact measure="Revenue">222.0</impact>
</business>
<rules>
<rule id="first_name">($.get('firstName') == '11')? true : false;</rule>
<rule id="ssn">($.get('ssn') != '11')? true : false;</rule>
<rule id="email">($.get('email') == 'NULL')? true : ($.get('email') == '')? true : false;</rule>
</rules>
</instance>
</subject>
</model>
<model name="Person">
<subject name="Person">
<source>
<logic>
<and rule="rule"/>
</logic>
<business>
<impact measure="Revenue">2.0</impact>
<impact measure="ProductionCapacity">3.0</impact>
</business>
<rules>
<rule id="rule">($.get('string') == 'NULL')? false : false;</rule>
</rules>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
</model>
</dimension>
<dimension>
<properties>
<name>Completeness</name>
<default>false</default>
</properties>
<model name="Customer">
<subject name="Customer">
<subject name="Address">
<subject name="level3">
<subject name="level4">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<subject name="Phone">
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
<source>
<logic/>
<business/>
<rules/>
</source>
<instance>
<logic>
<and rule="email"/>
</logic>
<business>
<impact measure="Revenue">2.0</impact>
<impact measure="ProductionCapacity">2222.0</impact>
</business>
<rules>
<rule id="first_name">($.get('firstName') == '11')? true : false;</rule>
<rule id="ssn">($.get('ssn') != '11')? true : false;</rule>
<rule id="email">($.get('email') == 'NULL')? true : ($.get('email') == '')? true : false;</rule>
</rules>
</instance>
</subject>
</model>
<model name="Person">
<subject name="Person">
<source>
<logic/>
<business/>
<rules/>
</source> <instance>
<logic/>
<business/>
<rules/>
</instance>
</subject>
</model>
</dimension>
</dimensions>
<measures>
<measure id="Revenue" units="UAH"/>
<measure id="ProductionCapacity" units="something"/>
</measures>
</dqconfig>For each dimension, there is a rule that defines which records should be defined as good, which is defined for each domain and sub-domain available in the system.

Important: There might be situations when you do not see some or all of the dimensions. This is usually due to the fact that those dimensions simply have not been added to the WSO2 component-access-dimensions-policy. You should check the policy, add any new dimensions as required, publish it, and log back in to the application.
Measures and their units are defined in the measures section, as shown in the following image.

Measures are calculated based on defined coefficients for each domain and dimension.

The formula for calculating the measure value is:
where:
(a × c) + (b × c) = d
where:
The formula is the same for all dimensions.
Note: Measures are defined for each domain separately.
Important: There might be situations when you do not see some or all of the measures. This is usually due to the fact that those measures simply have not been added to the WSO2 component-access-measures-policy. You should check the policy, add any new measures as required, publish it, and log back in to the application.