DMRef

Sometimes, the same DataMeasure can be used across several different TLVs. Instead of copy/pasting the DM in multiple TLVs, you should define your reusable DMs in a separate file with the extension ".dms". This file should reside in the tlvs/ directory. You can then reference these from multiple TLVs using the DMRef element.

Sample .dms file

<TLVDataMeasures xmlns="http://www.onenetwork.com/Platform">
<SqlDef Name="DummySql" GroupName="TLVs"><![CDATA[
SELECT the_date, quantity, sys_book_id FROM(
SELECT TO_DATE('2011-07-01','YYYY-MM-DD') the_date , 1 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-02','YYYY-MM-DD') the_date , 5 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-03','YYYY-MM-DD') the_date , 4 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-04','YYYY-MM-DD') the_date , 10 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-05','YYYY-MM-DD') the_date , 10 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-07','YYYY-MM-DD') the_date , 4 quantity, 10000 sys_book_id FROM dual UNION ALL
SELECT TO_DATE('2011-07-08','YYYY-MM-DD') the_date , 20 quantity, 10000 sys_book_id FROM dual)
]]></SqlDef>
<DM bucketization="DAILY">
<Name>RequestQuantity</Name>
<DisplayName>Request Quantity</DisplayName>
<SqlDefName>DummySql</SqlDefName>
<SqlQuantityField levelType="Undefined">
<FieldName>quantity</FieldName>
</SqlQuantityField>
<SqlDateField levelType="Undefined">
<FieldName>the_date</FieldName>
</SqlDateField>
</DM>
</TLVDataMeasures>

(To deploy the ".dms" file without restarting the Platform Server, call "ant deploy-dms" ant target from module directory. On deploy of dms file, TLV files also get reloaded to reference the correct DM.)

To use a DM from a .dms file in your TLV definition, define a DMRef element that takes the DM name with module prefix. For example:

<TLVList xmlns="http://www.onenetwork.com/Platform">
<TLV>
<Name>MyFirstTLV</Name>
<Description>My First TLV Report Example</Description>
<Bucketization>DAILY</Bucketization>
<BucketsPerPage>7</BucketsPerPage>
<Filters bindSqlNulls="true">
<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>
<DateRange start="$NULL$" end="$NULL$"/>
</Filters>
<DMRef>ZBKS.RequestQuantity</DMRef>
</TLV>
</TLVList>