Example

In the example below, the DPA module depends on the PTA module.

Sample TLV in PTA:

<TLVList xmlns="http://www.onenetwork.com/Platform">
<TLV public="true">
<Name>SampleTLVInjection</Name>
<Bucketization>DAILY</Bucketization>
<BucketsPerPage>7</BucketsPerPage>
<SqlDef Name="DummySql" GroupName="TlvSqls"><![CDATA[
SELECT the_date, quantity, the_string FROM(
SELECT sysdate the_date, 20 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 1) the_date, 20 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 2) the_date, 20 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 3) the_date, 20 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 4) the_date, 20 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 5) the_date, 20 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 6) the_date, 20 quantity, 'B' the_string FROM dual
)
]]></SqlDef>
<SqlDef Name="DMDdummySql" GroupName="TlvSqls"><![CDATA[
SELECT the_date, quantity, the_string FROM(
SELECT sysdate the_date, 50 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 1) the_date, 50 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 2) the_date, 50 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 3) the_date, 50 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 4) the_date, 50 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 5) the_date, 50 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 6) the_date, 50 quantity, 'B' the_string FROM dual
)
]]></SqlDef>
<SqlDef Name="DMEdummySql" GroupName="TlvSqls"><![CDATA[
SELECT the_date, quantity, the_string FROM(
SELECT sysdate the_date, 60 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 1) the_date, 60 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 2) the_date, 60 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 3) the_date, 60 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 4) the_date, 60 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 5) the_date, 60 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 6) the_date, 60 quantity, 'B' the_string FROM dual
)
]]></SqlDef>
 
<Filters>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>DateRange</FieldName>
</FieldRef>
<Hidden>false</Hidden>
<Editable>true</Editable>
<Type>DATE_RANGE</Type>
<Optional>false</Optional>
<DateRangeMapping fromSqlName="DATE_RANGE_START" toSqlName="DATE_RANGE_END"/>
</CustomFilterField>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>String</FieldName>
</FieldRef>
<Hidden>false</Hidden>
<Editable>true</Editable>
<Type>STRING</Type>
<Optional>true</Optional>
<SimpleMapping sqlName="STRING"/>
</CustomFilterField>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>StringEnumeration</FieldName>
</FieldRef>
<Hidden>false</Hidden>
<Editable>true</Editable>
<Type>STRING_ENUMERATION</Type>
<Optional>true</Optional>
<EnumerationValues>
<Value>Monthly</Value>
<Value>Weekly</Value>
<Value>Daily</Value>
</EnumerationValues>
<SimpleMapping sqlName="STRING_ENUMERATION"/>
</CustomFilterField>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>Integer</FieldName>
</FieldRef>
<Hidden>false</Hidden>
<Editable>true</Editable>
<Type>INTEGER</Type>
<Optional>true</Optional>
<SimpleMapping sqlName="INTEGER"/>
</CustomFilterField>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>Date</FieldName>
</FieldRef>
<Hidden>false</Hidden>
<Editable>true</Editable>
<Type>DATE</Type>
<Optional>true</Optional>
<SimpleMapping sqlName="DATE"/>
</CustomFilterField>
<DateRange start="$NULL$" end="$NULL$"/>
</Filters>
<ColumnHierarchy/>
<DM bucketization="DAILY">
<Name>DMA</Name>
<DisplayName>DM A</DisplayName>
<SqlDefName>DummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</DM>
<DM bucketization="DAILY">
<Name>DMD</Name>
<DisplayName>DM D</DisplayName>
<SqlDefName>DMDdummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</DM>
<DM bucketization="DAILY">
<Name>DME</Name>
<DisplayName>DM E</DisplayName>
<SqlDefName>DMEdummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</DM>
<Customizable/>
</TLV>
</TLVList>

Sample TLV Injection in DPA:

File Name: PTA.SampleTLVInjection.tlvInject

<TLVInjection xmlns="http://www.onenetwork.com/Platform">
<TLVName>PTA.SampleTLVInjection</TLVName>
<SqlDef Name="AdditionalDummySql" GroupName="TlvSqls"><![CDATA[
SELECT the_date, quantity, the_string FROM(
SELECT sysdate the_date, 30 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 1) the_date, 30 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 2) the_date, 30 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 3) the_date, 30 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 4) the_date, 30 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 5) the_date, 30 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 6) the_date, 30 quantity, 'B' the_string FROM dual
)
where ${filterIfNotNull:THE_STRING, THE_STRING = $THE_STRING$}
]]></SqlDef>
<SqlDef Name="ChildDMDummySql" GroupName="TlvSqls"><![CDATA[
SELECT the_date, quantity, the_string FROM(
SELECT sysdate the_date, 40 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 1) the_date, 40 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 2) the_date, 40 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 3) the_date, 40 quantity, 'B' the_string FROM dual union all
SELECT (sysdate + 4) the_date, 40 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 5) the_date, 40 quantity, 'A' the_string FROM dual union all
SELECT (sysdate + 6) the_date, 40 quantity, 'B' the_string FROM dual
)
where ${filterIfNotNull:THE_STRING, THE_STRING = $THE_STRING$}
]]></SqlDef>
<FilterAdditions>
<CustomFilterField>
<FieldRef category="PDF" levelType="Undefined">
<FieldName>TheString</FieldName>
</FieldRef>
<Editable>true</Editable>
<Type>STRING</Type>
<Optional>true</Optional>
<SimpleMapping sqlName="THE_STRING"/>
</CustomFilterField>
</FilterAdditions>
<AdditionalDM bucketization="DAILY">
<Name>DMB</Name>
<DisplayName>Additional DM B (DeptTestA)</DisplayName>
<SqlDefName>AdditionalDummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</AdditionalDM>
<AdditionalDM bucketization="DAILY">
<Name>DMC</Name>
<DisplayName>Additional DM C (DeptTestA)</DisplayName>
<SqlDefName>ChildDMDummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</AdditionalDM>
<AdditionalComputedDM bucketization="DAILY">
<Name>AddDandE</Name>
<DisplayName>Additional Computed DM (DeptTestA)</DisplayName>
<Depends>DMD</Depends>
<Depends>DME</Depends>
<Computation>
a = timeline.dataMeasures["DMD"].getBucket(bucket.startDate);
b = timeline.dataMeasures["DME"].getBucket(bucket.startDate);
return (a.value + b.value)
</Computation>
</AdditionalComputedDM>
<DMChild parent="DMA" child="DMC"/>
</TLVInjection>