Difference between revisions of "Case: Tracking diagram for open tasks"

From Catglobe Wiki
Jump to: navigation, search
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Advanced report setups]]
+
{{HelpFiles_Report_Module}}
  
===Case: Tracking diagram for open tasks===
+
=== Case: Tracking diagram for open tasks ===
  
It can be difficult to figure out how to twitch Catglobe to solve unique reporting needs, but with a bit of ingenuity most requirements can be met. The following help file shows you how it is possible to make a tracking diagram for a company that shows the development of open tasks over time and split up per department.
+
It can be difficult to figure out how to twitch Catglobe to solve unique reporting needs, but with a bit of ingenuity most requirements can be met. The following help file shows you how it is possible to make a tracking diagram for a company that shows the development of open tasks over time and split up per department.  
  
First let us go through the scenario that this case offers us.
+
First let us go through the scenario that this case offers us.  
  
===Time set for reporting open tasks===
+
=== Time set for reporting open tasks ===
  
First step will be to decide the frequency with which we want to see the development of open tasks. Let us assume that we are interested in seeing the development on a weekly basis and that we are situated in Denmark. Our time set could then look like below:
+
First step will be to decide the frequency with which we want to see the development of open tasks. Let us assume that we are interested in seeing the development on a weekly basis and that we are situated in Denmark. Our time set could then look like below:  
  
[[Image:7489.png|430px|Dash1]]
+
[[Image:7489.png|430px|Dash1]]  
  
===Tasks in the company===
+
=== Tasks in the company ===
  
Our company has added a parameter on all tasks that specifies which team the tasks belong to. Whenever we create a task we must thus specify a team for it.
+
Our company has added a parameter on all tasks that specifies which team the tasks belong to. Whenever we create a task we must thus specify a team for it.  
  
Any task has 5 possible states:
+
Any task has 5 possible states:  
  
• Need acceptance
+
• Need acceptance  
  
• Rejected
+
• Rejected  
  
• Waiting for approval
+
• Waiting for approval  
  
• In progress
+
• In progress  
  
• Approved
+
• Approved  
  
• Cancelled
+
• Cancelled  
  
Our company has decided that open tasks are defined as those that have either status ‘Need acceptance’ or ‘In progress’.
+
Our company has decided that open tasks are defined as those that have either status ‘Need acceptance’ or ‘In progress’.  
  
===Extracting open tasks to a data cache===
+
=== Extracting open tasks to a data cache ===
  
Next step is to make a resource data cache which extracts all open tasks at any given point of time. To do this we will make a search on the task resource list as follows:
+
Next step is to make a resource data cache which extracts all open tasks at any given point of time. To do this we will make a search on the task resource list as follows:  
  
[[Image:7490.png|592px|Dash2]]
+
[[Image:7490.png|592px|Dash2]]  
  
Now we have a list of all open tasks and will make a data cache with them by using the ‘Generate resource cache’ button from the task resource list’s drop down menu.
+
Now we have a list of all open tasks and will make a data cache with them by using the ‘Generate resource cache’ button from the task resource list’s drop down menu.  
  
[[Image:7491.png|326px|Dash3]]
+
[[Image:7491.png|326px|Dash3]]  
  
Since we already know that all the tasks being extracted are ‘open’, all the information we really need is to know which team a task belongs to. We therefore choose the column ‘Property_Team’ as the only column for the resource cache.
+
Since we already know that all the tasks being extracted are ‘open’, all the information we really need is to know which team a task belongs to. We therefore choose the column ‘Property_Team’ as the only column for the resource cache.  
  
[[Image:7492.png|628px|Dash4]]
+
[[Image:7492.png|628px|Dash4]]  
  
On saving the cache the ‘Axis set’ tab will be activated. Under the Axis that was created for Team, you will find the specific expressions needed to filter out open tasks from any team in the company. These expressions we will need later when we are creating a tabulation script.
+
On saving the cache the ‘Axis set’ tab will be activated. Under the Axis that was created for Team, you will find the specific expressions needed to filter out open tasks from any team in the company. These expressions we will need later when we are creating a tabulation script.  
  
[[Image:7493.png|628px|Dash5]]
+
[[Image:7493.png|628px|Dash5]]  
  
Final step for the new resource cache will be to have it automatically update with the same frequency as the frequency with which we wish to report on open tasks. As you remember, we chose that this would be weekly, so we will have the resource cache be updated weekly as well.
+
Final step for the new resource cache will be to have it automatically update with the same frequency as the frequency with which we wish to report on open tasks. As you remember, we chose that this would be weekly, so we will have the resource cache be updated weekly as well.  
  
[[Image:7494.png|628px|Dash6]]
+
[[Image:7494.png|628px|Dash6]]  
  
Since we want a tracking diagram it will not be enough to just report on the data that exists in this RCS at any time. We will need to ‘save’ the information each week so we can compare the results across weeks. First step will be to create a questionnaire into which we can save the results.
+
Since we want a tracking diagram it will not be enough to just report on the data that exists in this RCS at any time. We will need to ‘save’ the information each week so we can compare the results across weeks. First step will be to create a questionnaire into which we can save the results.  
  
===Creating a questionnaire to hold open task results per week===
+
=== Creating a questionnaire to hold open task results per week ===
  
Create a questionnaire with questionnaire template called e.g. ‘Open tasks’. Create in this questionnaire just one single question called ‘Team’, where each option in the question corresponds to one of the options that also exist in the task property called ‘Team’.
+
Create a questionnaire with questionnaire template called e.g. ‘Open tasks’. Create in this questionnaire just one single question called ‘Team’, where each option in the question corresponds to one of the options that also exist in the task property called ‘Team’.  
  
Let us assume that the Team question looks like below:
+
Let us assume that the Team question looks like below:  
  
[[Image:7495.png|628px|Dash7]]
+
[[Image:7495.png|628px|Dash7]]  
  
===Creating a tabulation resource to move information from the resource cache to the questionnaire===
+
=== Creating a tabulation resource to move information from the resource cache to the questionnaire ===
  
Next step is to create a tabulation resource which will ‘read’ the resource cache that we created and for each found task it will create an answer sheet in the new questionnaire. The related data cache will be the resource cache that we created with open tasks.
+
Next step is to create a tabulation resource which will ‘read’ the resource cache that we created and for each found task it will create an answer sheet in the new questionnaire. The related data cache will be the resource cache that we created with open tasks.  
  
Below is how we would write this script for the tabulation resource.
+
Below is how we would write this script for the tabulation resource  
[QAS_COMPLETED] = true;
 
  
QAS_save(newRPQ);
+
Next step is to run the above tabulation every 7 days, to ensure that the resource cache (which is also updated once a week) will create new unique answer sheets for each open task. We should run the tabulation script every 7 days with starting time an hour later than when the resource cache was automatically run.
  
newRPQId = newRPQ[QAS_ID];
+
Below is shown how we set automatic executions of the tabulation resource.
  
setRPQId(newRPQId);
+
''//BEGIN scripts''
  
Team = 1;
+
''//Define variables''
  
}
 
  
//-----Open Tasks for HR
 
  
//Count all Open Tasks of HR
+
''array newRPQ;''
  
totalTask = (count() where (Property_365 == 141));
+
''number totalTask;''
  
//Loop - create new answer sheets and set value to them
+
''number i;''
  
for (i = 0; i < totalTask; i = i + 1)
+
''number newRPQId;''
  
{
+
''number questionnaireResourceId = 151624;''
  
newRPQ = QAS_new(questionnaireResourceId);
 
  
newRPQ[QAS_COMPLETED] = true;
 
  
QAS_save(newRPQ);
+
''//Rebuild the resource cache first''
  
newRPQId = newRPQ[QAS_ID];
+
''DCS_rebuild();''
  
setRPQId(newRPQId);
 
  
Team = 2;
 
  
}
+
''//-----Open Tasks for Accounting''
  
//-----Open Tasks for Administration
 
  
//Count all Open Tasks of Administration
 
  
totalTask = (count() where (Property_365 == 142));
+
''//Count all Open Tasks of Accounting''
  
//Loop - create new answer sheets and set value to them
+
''totalTask = (count() where (Property_365 == 140));''
  
for (i = 0; i < totalTask; i = i + 1)
 
  
{
 
  
newRPQ = QAS_new(questionnaireResourceId);
+
''//Loop - create new answer sheets and set value to them''
  
newRPQ[QAS_COMPLETED] = true;
+
''for (i = 0; i < totalTask; i = i + 1)''
  
QAS_save(newRPQ);
+
''{''
  
newRPQId = newRPQ[QAS_ID];
+
''newRPQ = QAS_new(questionnaireResourceId);''
  
setRPQId(newRPQId);
+
''newRPQ[QAS_COMPLETED] = true;''
  
Team = 3;
+
''QAS_save(newRPQ);''
  
}
+
''newRPQId = newRPQ[QAS_ID];''
  
//-----Open Tasks for Sales
+
''setRPQId(newRPQId);''
  
//Count all Open Tasks of Sales
+
''Team = 1;''
  
totalTask = (count() where (Property_365 == 157));
+
''}''
  
//Loop - create new answer sheets and set value to them
 
  
for (i = 0; i < totalTask; i = i + 1)
 
  
{
+
''//-----Open Tasks for HR''
  
newRPQ = QAS_new(questionnaireResourceId);
 
  
newRPQ[QAS_COMPLETED] = true;
 
  
QAS_save(newRPQ);
+
''//Count all Open Tasks of HR''
  
newRPQId = newRPQ[QAS_ID];
+
''totalTask = (count() where (Property_365 == 141));''
  
setRPQId(newRPQId);
 
  
Team = 4;
 
  
}
+
''//Loop - create new answer sheets and set value to them''
  
//-----Open Tasks for Marketing
+
''for (i = 0; i < totalTask; i = i + 1)''
  
//Count all Open Tasks of Marketing
+
''{''
  
totalTask = (count() where (Property_365 == 158));
+
''newRPQ = QAS_new(questionnaireResourceId);''
  
//Loop - create new answer sheets and set value to them
+
''newRPQ[QAS_COMPLETED] = true;''
  
for (i = 0; i < totalTask; i = i + 1)
+
''QAS_save(newRPQ);''
  
{
+
''newRPQId = newRPQ[QAS_ID];''
  
newRPQ = QAS_new(questionnaireResourceId);
+
''setRPQId(newRPQId);''
  
newRPQ[QAS_COMPLETED] = true;
+
''Team = 2;''
  
QAS_save(newRPQ);
+
''}''
  
newRPQId = newRPQ[QAS_ID];
 
  
setRPQId(newRPQId);
 
  
Team = 5;
+
''//-----Open Tasks for Administration''
  
}
 
  
Next step is to run the above tabulation every 7 days, to ensure that the resource cache (which is also updated once a week) will create new unique answer sheets for each open task. We should run the tabulation script every 7 days with starting time an hour later than when the resource cache was automatically run. Below is shown how we set automatic executions of the tabulation resource.
 
  
[[Image:7496.png|628px|Dash8]]
+
''//Count all Open Tasks of Administration''
  
===Extracting data from the questionnaire to a data cache===
+
''totalTask = (count() where (Property_365 == 142));''
  
It is now time to build another data cache that will get its data from the new questionnaire that we created. We really only need two columns in this data cache, namely ‘StartDate’ and ‘Team’.
 
  
[[Image:7497.png|627px|Dash9]]
 
  
Make sure that the Axis Set created an Axis for the Team column.
+
''//Loop - create new answer sheets and set value to them''
  
Finally schedule that this data cache is rebuilt one hour later than the tabulation script is rebuilt every week.
+
''for (i = 0; i < totalTask; i = i + 1)''
  
[[Image:7498.png|554px|Dash10]]
+
''{''
  
With this we now have a data cache which holds information on open tasks per team per date and which automatically will update this information each week, while keeping historical values intact. We can now finally create a tracking diagram to view the results.
+
''newRPQ = QAS_new(questionnaireResourceId);''
  
===Creating a tracking diagram using the Dashboard module===
+
''newRPQ[QAS_COMPLETED] = true;''
  
It is possible to fully create a tracking diagram using the Dashboard module.
+
''QAS_save(newRPQ);''
  
Step 1 will be to create the dashboard and relate to it the data cache extracting information from our newly created questionnaire.
+
''newRPQId = newRPQ[QAS_ID];''
  
Step 2 will be to create three items in the dashboard.
+
''setRPQId(newRPQId);''
  
# A time set item using the time set that we created earlier on (“Danish time zone week”).[[Image:7499.png|425px|Dash11]]This time set will use the StartDate column from the data cache.
+
''Team = 3;''
# A hidden axis item to hold the information on axis to be use for the series of our tracking diagram. [[Image:7500.png|389px|Dash12]]The series will of course be the different teams in our company, so this is the column we will include.
 
# Finally we will add a cross diagram item using the two prior items.[[Image:7501.png|494px|Dash13]]
 
  
===The Tracking Diagram===
+
''}''
  
We now have a dashboard that can show the development of open tasks by week. An example of how this may look is shown below:
 
  
[[Image:7502.png|627px|Dash14]]
+
 
__NOTOC__
+
 
<!-- imported from file: 7488.htm-->
+
 
 +
''//-----Open Tasks for Sales''
 +
 
 +
 
 +
 
 +
''//Count all Open Tasks of Sales''
 +
 
 +
''totalTask = (count() where (Property_365 == 157));''
 +
 
 +
 
 +
 
 +
''//Loop - create new answer sheets and set value to them''
 +
 
 +
''for (i = 0; i &lt; totalTask; i = i + 1)''
 +
 
 +
''{''
 +
 
 +
''newRPQ = QAS_new(questionnaireResourceId);''
 +
 
 +
''newRPQ[QAS_COMPLETED] = true;''
 +
 
 +
''QAS_save(newRPQ);''
 +
 
 +
''newRPQId = newRPQ[QAS_ID];''
 +
 
 +
''setRPQId(newRPQId);''
 +
 
 +
''Team = 4;''
 +
 
 +
''}''
 +
 
 +
 
 +
 
 +
''//-----Open Tasks for Marketing''
 +
 
 +
 
 +
 
 +
''//Count all Open Tasks of Marketing''
 +
 
 +
''totalTask = (count() where (Property_365 == 158));''
 +
 
 +
 
 +
 
 +
''//Loop - create new answer sheets and set value to them''
 +
 
 +
''for (i = 0; i &lt; totalTask; i = i + 1)''
 +
 
 +
''{''
 +
 
 +
''newRPQ = QAS_new(questionnaireResourceId);''
 +
 
 +
''newRPQ[QAS_COMPLETED] = true;''
 +
 
 +
''QAS_save(newRPQ);''
 +
 
 +
''newRPQId = newRPQ[QAS_ID];''
 +
 
 +
''setRPQId(newRPQId);''
 +
 
 +
''Team = 5;''
 +
 
 +
''}<br>//END scripts''<br>
 +
<blockquote>''<br>''</blockquote>
 +
[[Image:7496.png|628px|Dash8]]
 +
 
 +
=== Extracting data from the questionnaire to a data cache  ===
 +
 
 +
It is now time to build another data cache that will get its data from the new questionnaire that we created. We really only need two columns in this data cache, namely ‘StartDate’ and ‘Team’.
 +
 
 +
[[Image:7497.png|627px|Dash9]]
 +
 
 +
Make sure that the Axis Set created an Axis for the Team column.
 +
 
 +
Finally schedule that this data cache is rebuilt one hour later than the tabulation script is rebuilt every week.
 +
 
 +
[[Image:7498.png|554px|Dash10]]
 +
 
 +
With this we now have a data cache which holds information on open tasks per team per date and which automatically will update this information each week, while keeping historical values intact. We can now finally create a tracking diagram to view the results.
 +
 
 +
=== Creating a tracking diagram using the Dashboard module  ===
 +
 
 +
It is possible to fully create a tracking diagram using the Dashboard module.
 +
 
 +
Step 1 will be to create the dashboard and relate to it the data cache extracting information from our newly created questionnaire.
 +
 
 +
Step 2 will be to create three items in the dashboard.
 +
 
 +
#A time set item using the time set that we created earlier on (“Danish time zone week”).[[Image:7499.png|425px|Dash11]]This time set will use the StartDate column from the data cache.
 +
#A hidden axis item to hold the information on axis to be use for the series of our tracking diagram. [[Image:7500.png|389px|Dash12]]The series will of course be the different teams in our company, so this is the column we will include.
 +
#Finally we will add a cross diagram item using the two prior items.[[Image:7501.png|494px|Dash13]]
 +
 
 +
=== The Tracking Diagram  ===
 +
 
 +
We now have a dashboard that can show the development of open tasks by week. An example of how this may look is shown below:
 +
 
 +
[[Image:7502.png|627px|Dash14]] __NOTOC__ <!-- imported from file: 7488.htm-->  
 +
 
 +
[[Category:Advanced_report_setups]]

Latest revision as of 07:59, 6 February 2012


Case: Tracking diagram for open tasks

It can be difficult to figure out how to twitch Catglobe to solve unique reporting needs, but with a bit of ingenuity most requirements can be met. The following help file shows you how it is possible to make a tracking diagram for a company that shows the development of open tasks over time and split up per department.

First let us go through the scenario that this case offers us.

Time set for reporting open tasks

First step will be to decide the frequency with which we want to see the development of open tasks. Let us assume that we are interested in seeing the development on a weekly basis and that we are situated in Denmark. Our time set could then look like below:

Dash1

Tasks in the company

Our company has added a parameter on all tasks that specifies which team the tasks belong to. Whenever we create a task we must thus specify a team for it.

Any task has 5 possible states:

• Need acceptance

• Rejected

• Waiting for approval

• In progress

• Approved

• Cancelled

Our company has decided that open tasks are defined as those that have either status ‘Need acceptance’ or ‘In progress’.

Extracting open tasks to a data cache

Next step is to make a resource data cache which extracts all open tasks at any given point of time. To do this we will make a search on the task resource list as follows:

Dash2

Now we have a list of all open tasks and will make a data cache with them by using the ‘Generate resource cache’ button from the task resource list’s drop down menu.

Dash3

Since we already know that all the tasks being extracted are ‘open’, all the information we really need is to know which team a task belongs to. We therefore choose the column ‘Property_Team’ as the only column for the resource cache.

Dash4

On saving the cache the ‘Axis set’ tab will be activated. Under the Axis that was created for Team, you will find the specific expressions needed to filter out open tasks from any team in the company. These expressions we will need later when we are creating a tabulation script.

Dash5

Final step for the new resource cache will be to have it automatically update with the same frequency as the frequency with which we wish to report on open tasks. As you remember, we chose that this would be weekly, so we will have the resource cache be updated weekly as well.

Dash6

Since we want a tracking diagram it will not be enough to just report on the data that exists in this RCS at any time. We will need to ‘save’ the information each week so we can compare the results across weeks. First step will be to create a questionnaire into which we can save the results.

Creating a questionnaire to hold open task results per week

Create a questionnaire with questionnaire template called e.g. ‘Open tasks’. Create in this questionnaire just one single question called ‘Team’, where each option in the question corresponds to one of the options that also exist in the task property called ‘Team’.

Let us assume that the Team question looks like below:

Dash7

Creating a tabulation resource to move information from the resource cache to the questionnaire

Next step is to create a tabulation resource which will ‘read’ the resource cache that we created and for each found task it will create an answer sheet in the new questionnaire. The related data cache will be the resource cache that we created with open tasks.

Below is how we would write this script for the tabulation resource

Next step is to run the above tabulation every 7 days, to ensure that the resource cache (which is also updated once a week) will create new unique answer sheets for each open task. We should run the tabulation script every 7 days with starting time an hour later than when the resource cache was automatically run.

Below is shown how we set automatic executions of the tabulation resource.

//BEGIN scripts

//Define variables


array newRPQ;

number totalTask;

number i;

number newRPQId;

number questionnaireResourceId = 151624;


//Rebuild the resource cache first

DCS_rebuild();


//-----Open Tasks for Accounting


//Count all Open Tasks of Accounting

totalTask = (count() where (Property_365 == 140));


//Loop - create new answer sheets and set value to them

for (i = 0; i < totalTask; i = i + 1)

{

newRPQ = QAS_new(questionnaireResourceId);

newRPQ[QAS_COMPLETED] = true;

QAS_save(newRPQ);

newRPQId = newRPQ[QAS_ID];

setRPQId(newRPQId);

Team = 1;

}


//-----Open Tasks for HR


//Count all Open Tasks of HR

totalTask = (count() where (Property_365 == 141));


//Loop - create new answer sheets and set value to them

for (i = 0; i < totalTask; i = i + 1)

{

newRPQ = QAS_new(questionnaireResourceId);

newRPQ[QAS_COMPLETED] = true;

QAS_save(newRPQ);

newRPQId = newRPQ[QAS_ID];

setRPQId(newRPQId);

Team = 2;

}


//-----Open Tasks for Administration


//Count all Open Tasks of Administration

totalTask = (count() where (Property_365 == 142));


//Loop - create new answer sheets and set value to them

for (i = 0; i < totalTask; i = i + 1)

{

newRPQ = QAS_new(questionnaireResourceId);

newRPQ[QAS_COMPLETED] = true;

QAS_save(newRPQ);

newRPQId = newRPQ[QAS_ID];

setRPQId(newRPQId);

Team = 3;

}



//-----Open Tasks for Sales


//Count all Open Tasks of Sales

totalTask = (count() where (Property_365 == 157));


//Loop - create new answer sheets and set value to them

for (i = 0; i < totalTask; i = i + 1)

{

newRPQ = QAS_new(questionnaireResourceId);

newRPQ[QAS_COMPLETED] = true;

QAS_save(newRPQ);

newRPQId = newRPQ[QAS_ID];

setRPQId(newRPQId);

Team = 4;

}


//-----Open Tasks for Marketing


//Count all Open Tasks of Marketing

totalTask = (count() where (Property_365 == 158));


//Loop - create new answer sheets and set value to them

for (i = 0; i < totalTask; i = i + 1)

{

newRPQ = QAS_new(questionnaireResourceId);

newRPQ[QAS_COMPLETED] = true;

QAS_save(newRPQ);

newRPQId = newRPQ[QAS_ID];

setRPQId(newRPQId);

Team = 5;

}
//END scripts


Dash8

Extracting data from the questionnaire to a data cache

It is now time to build another data cache that will get its data from the new questionnaire that we created. We really only need two columns in this data cache, namely ‘StartDate’ and ‘Team’.

Dash9

Make sure that the Axis Set created an Axis for the Team column.

Finally schedule that this data cache is rebuilt one hour later than the tabulation script is rebuilt every week.

Dash10

With this we now have a data cache which holds information on open tasks per team per date and which automatically will update this information each week, while keeping historical values intact. We can now finally create a tracking diagram to view the results.

Creating a tracking diagram using the Dashboard module

It is possible to fully create a tracking diagram using the Dashboard module.

Step 1 will be to create the dashboard and relate to it the data cache extracting information from our newly created questionnaire.

Step 2 will be to create three items in the dashboard.

  1. A time set item using the time set that we created earlier on (“Danish time zone week”).Dash11This time set will use the StartDate column from the data cache.
  2. A hidden axis item to hold the information on axis to be use for the series of our tracking diagram. Dash12The series will of course be the different teams in our company, so this is the column we will include.
  3. Finally we will add a cross diagram item using the two prior items.Dash13

The Tracking Diagram

We now have a dashboard that can show the development of open tasks by week. An example of how this may look is shown below:

Dash14