You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

With the Data Export API you can develop client applications to retreive data from the CardioLog reporting engine, and refine the results of the request using query parameters. This allows for even more flexibility and customization than the CardioLog UI, giving you a great deal of freedom over how to design, filter and display your reports. You can also brand your data with your organization's logos and themes to fully own and identify it.

The CardioLog reporting engine generates the report in XML format and as a chart image.

Use the Reports API Helper to generate a URL which can be embedded in a client application. When calling this URL the report will be generated based on the selected parameters.

  1. Browse: http://<cardiolog_server>:<port>/CardioLog/CLReport/ReportsAPIHelper.aspxYour browser may not support display of this image.
  2. Select a Report.
  3. Select the report parameters - Date RangeTime IntervalWebsite Item, Users and Groups
  4. Check Generate Chart Image to create an image and set its Width and Height (pixels).
  5. Click Get URL to generate the report URL
  6. Click Generate Report to generate the report.
  7. Click Show Advanced Options  and Get Report Preferences to modify report preferences.

 The CardioLog Report XML Schema

The CardioLog report XML contains a preferences section (prefs node), and a data section (data node).

Chart

The chart's x-axis values are displayed in the categories node, while y-axis values are displayed in the dataset node. Futher, each chart series is represented by a dataset node.

 

<xml id="root">
   <report>
      <call controlId="410" action="get" cached="False">
         <controlTitle>Chart</controlTitle>
         <title>Page Views</title>
         <prefs>
            <prefs>
               <enable3D>true</enable3D>
               <perspective>true</perspective>
               <legend>true</legend>
               <l_INSIDECHART>false</l_INSIDECHART>
               <l_STYLE>row</l_STYLE>
               <l_DOCKING>top</l_DOCKING>
               <labels>false</labels>
               <showtitle>false</showtitle>
               <showhelp>false</showhelp>
               <showpreferences>false</showpreferences>
               <timeframe>864000000000</timeframe>
               <timeInterval>864000000000</timeInterval>
               <rules>
                  <rule id="2022" status="on" title="Aggregated" type="Column" />
                  <rule id="2021" status="on" title="Specific" type="Column" />
                  <rule id="2046" status="off" title="Aggregated" type="Column"
                   period="1" />
                  <rule id="2129" status="off" title="Specific" type="Column" period="1" />
               </rules>
               <ctitle>Page Views</ctitle>
               <type>Column</type>
               <palette>BrightPastel</palette>
               <adgroup>2</adgroup>
               <adgroupname>Domain Users</adgroupname>
               <categories />
               <entityId>0:01264d16-4641-465a-bdfe-459f1cb10d35</entityId>
               <entityName>Collaboration Portal</entityName>
               <entityTree>0</entityTree>
            </prefs>
         </prefs>
         <data>
            <categories>
               <category name="Sun." />
               <category name="Mon." />
               <category name="Tue." />
               <category name="Wed." />
               <category name="Thu." />
               <category name="Fri." />
               <category name="Sat." />
            </categories>
            <dataset ruleId="2021" seriesname="Specific" type="Column">
               <set value="100" />
               <set value="212" />
               <set value="343" />
               <set value="256" />
               <set value="347" />
               <set value="103" />
               <set value="120" />
            </dataset>
            <dataset ruleId="2022" seriesname="Aggregated" type="Column">
               <set value="1390" />
               <set value="1456" />
               <set value="1437" />
               <set value="1367" />
               <set value="1278" />
               <set value="800" />
               <set value="678" />
            </dataset>
         </data>
      </call>
   </report>
</xml>

Table

The data section for Table reports is automatically ready for HTML implementation.

 

<xml id="root">
   <report>
      <call controlId="411" action="get" cached="True">
         <controlTitle>Table</controlTitle>
         <title>Page Views</title>
         <prefs>
            <prefs>
               <showhelp>false</showhelp>
               <showpreferences>false</showpreferences>
               <timeframe>36000000000</timeframe>
               <timeInterval>36000000000</timeInterval>
               <maxrows>10</maxrows>
               <mincount>1</mincount>
               <reporttype>120</reporttype>
               <columns>
                  <column id="title" title="Title" width="35%" type="SPPage" />
                  <column id="url" title="Url" width="0" type="hidden" />
                  <column id="views" title="Views" sorted="true" width="15%" type="number" />
                  <column id="users" title="Unique Users" sorted="false" width="20%" type="number" />
                  <column id="avgDuration" title="Duration" sorted="false" width="15%" type="string" />
                  <column id="exitRate" title="Exit Rate" sorted="false" width="15%" type="number" />
               </columns>
               <ctitle>Page Views</ctitle>
               <chartType>static</chartType>
               <adgroup />
               <adgroupname />
               <categories />
               <entityId>0:b0426e68-8f34-4eb2-8702-012d5de1c143</entityId>
               <entityName>All</entityName>
               <entityTree>0</entityTree>
            </prefs>
         </prefs>
         <data><![CDATA[<table cache='True'>

<prefs>

<showhelp>false</showhelp>

<showpreferences>false</showpreferences>

<timeframe>36000000000</timeframe>

<timeInterval>36000000000</timeInterval>

<maxrows>10</maxrows>

<mincount>1</mincount>

<reporttype>120</reporttype>

<columns>

<column id="title" title="Title" width="35%" type="SPPage" />

<column id="url" title="Url" width="0" type="hidden" />

<column id="views" title="Views" sorted="true" width="15%" type="number" />

<column id="users" title="Unique Users" sorted="false" width="20%" type="number" />

<column id="avgDuration" title="Duration" sorted="false" width="15%" type="string" />

<column id="exitRate" title="Exit Rate" sorted="false" width="15%" type="number" />

</columns><ctitle>Page Views</ctitle><chartType>static</chartType><adgroup></adgroup><adgroupname></adgroupname><categories></categories><entityId>0:b0426e68-8f34-4eb2-8702-012d5de1c143</entityId><entityName>All</entityName><entityTree>0</entityTree>

</prefs>

<thead>

<td type='SPPage' width='35%' id='title'>Title</td>

<td type='hidden' width='0' id='url'>Url</td>

<td type='number' width='15%' sorted='true' direction='-1' id='views'>Views</td>

<td type='number' width='20%' id='users'>Unique Users</td>

<td type='string' width='15%' id='avgDuration'>Duration</td>

<td type='number' width='15%' id='exitRate'>Exit Rate</td>

</thead>

<tbody from='0' to='10' total='10'>

<tr>

<td>bl_SecondaryNav_Divider.jpg</td>

<td>http://scotland:81/Style Library/Images/bl_SecondaryNav_Divider.jpg</td>

<td>3</td>

<td>3</td>

<td>00:00:04</td>

<td>0%</td>

</tr>

<tr>

<td>Links</td>

<td>http://scotland:81/Lists/Links/AllItems.aspx</td>

<td>3</td>

<td>3</td>

<td>00:00:02</td>

<td>0%</td>

</tr>

<tr>

<td>Workflow Tasks</td>

<td>http://scotland:81/News/WorkflowTasks/AllItems.aspx</td>

<td>3</td>

<td>3</td>

<td>00:00:07</td>

<td>0%</td>

</tr>

<tr>

<td>Total Problems</td>

<td>http://scotland:81/Reports/Lists/Sample Dashboard KPI Definitions/DispForm.aspx?ID=1</td>

<td>3</td>

<td>3</td>

<td>00:00:05</td>

<td>0%</td>

</tr>

</tbody>

<startTime>1/1/0001 12:00:00 AM</startTime><endTime>1/1/0001 12:00:00 AM</endTime><rules>1</rules></table>]]>

         </data>

      </call>

   </report>

</xml>

Meter

The Meter data is displayed in the value node.

 

<xml id="root">

<report>

<call controlId="412" action="get" cached="True">

<controlTitle>Meter</controlTitle><title>Page Views</title>

<prefs>

<prefs><showhelp>false</showhelp><showpreferences>false</showpreferences><timeframe>36000000000</timeframe><timeInterval>36000000000</timeInterval><minvalue>0</minvalue><maxvalue>100</maxvalue><undershoot>0</undershoot><overshoot>100</overshoot><ctitle>Page Views</ctitle><chartType>static</chartType><adgroup></adgroup><adgroupname></adgroupname><categories></categories><entityId>0:b0426e68-8f34-4eb2-8702-012d5de1c143</entityId><entityName>All</entityName><entityTree>0</entityTree></prefs>

</prefs>

falsefalse3600000000036000000000101120Page Viewsstatic0:b0426e68-8f34-4eb2-8702-012d5de1c143All0 Title Url Views Unique Users Duration Exit Rate bl_SecondaryNav_Divider.jpghttp://scotland:81/Style Library/Images/bl_SecondaryNav_Divider.jpg 3 3 00:00:04 0% Links http://scotland:81/Lists/Links/AllItems.aspx 3 3 00:00:02 0% Workflow Taskshttp://scotland:81/News/WorkflowTasks/AllItems.aspx 3 3 00:00:07 0% Total Problems http://scotland:81/Reports/Lists/Sample Dashboard KPI Definitions/DispForm.aspx?ID=1 3 3 00:00:05 0% 1/1/0001 12:00:00 AM1/1/0001 12:00:00 AM1]]>

</data>

</call>

</report>

</xml>

Examples:

1. How to add values to the chart image:

In order to add values to a chart click on "Show Advanced Settings" in the Data Export API, and then "Get Report Preferences". In the preferences XML, edit the <labels>true</labels> key and set the value to true. Values should now appear in the chart.

 

2. How to display the page views meter value:

<script>
function getPageViews() {

// 1. Call the web service "http://cardiologservername:port/CardioLog/clreport/reportsapi.aspx" with the parameters "action=xml&controlId=3015&timeframe=77760000000000&urls=&usersAndGroups=&categoryId="

// 2. Create an XML file from the response and find the <data> node: selectSingleNode("//data").text;

// 3. Find the <value> node value with regex. Example:

var re = new RegExp("(^[^$]*<value>)([^<]*)(<\/value>[^$]*$)", "i");
if (response.match(re)) value = response.replace(re, "$2");
document.getElementById("pageviews").innerHTML = "This Year this site was viewed " + value + " times!";

window.onload = function () {
getPageViews();
}

</script>

<body>
<div id ="pageviews" class="sample"> </div>
</body>
</html>

  • No labels