Difference between revisions of "Organisation"

From PresenceWiki
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Another advantage of organising [[Tasks]] into [[Categories]] is that it is possible to set the task properties for all the tasks in a category via the 'Edit All Task Properties' button when you right click on a category.
 
Another advantage of organising [[Tasks]] into [[Categories]] is that it is possible to set the task properties for all the tasks in a category via the 'Edit All Task Properties' button when you right click on a category.
  
http://www.international-presence.com/images/bestuse/categoryoptions.png
+
[[File:bestusecategoryoptions.png]]
  
 
Often when building a system you have no idea of how it's going to change in the future.
 
Often when building a system you have no idea of how it's going to change in the future.
Line 11: Line 11:
 
To aid change management store common text (eg url to server, company name, company email) in a [[Global Variables|Global Variable]].
 
To aid change management store common text (eg url to server, company name, company email) in a [[Global Variables|Global Variable]].
  
http://www.international-presence.com/images/bestuse/fileservervariable.png
+
[[File:bestusefileservervariable.png]]
  
 
This way, if it changes you just have to make one change to that variable rather than searching for \\serverep\e$\ everywhere and changing that.
 
This way, if it changes you just have to make one change to that variable rather than searching for \\serverep\e$\ everywhere and changing that.
  
http://www.international-presence.com/images/bestuse/globalvaruse.png
+
[[File:bestuseglobalvaruse.png]]
  
 
Object/Resource reuse. If you're comfortable with SQL then it might be an idea to use a variable ${sql} in an sql query
 
Object/Resource reuse. If you're comfortable with SQL then it might be an idea to use a variable ${sql} in an sql query
  
http://www.international-presence.com/images/bestuse/sql.png
+
[[File:bestusesql.png]]
  
The ${sql} variable then gets set before the SQL node.  http://www.international-presence.com/images/bestuse/sqltask.png
+
The ${sql} variable then gets set before the SQL node.  [[File:bestusesqltask.png]]
  
http://www.international-presence.com/images/bestuse/sqlvar.png    
+
[[File:bestusesqlvar.png]]   
  
Where possible, embed tasks http://www.international-presence.com/images/nodes/task.png for reuse. Identify which tasks are repetitive and make them specific where necessary with variables.
+
Where possible, embed tasks [[File:bestusetask.png]] for reuse. Identify which tasks are repetitive and make them specific where necessary with variables.
  
 
Also bare in mind, that once on the queue, tasks are cached and so do not need to be reloaded each time they run.
 
Also bare in mind, that once on the queue, tasks are cached and so do not need to be reloaded each time they run.
Line 37: Line 37:
 
It is then also useful if you need to put a wrapper around the child tasks, such as checking that a user has authority to run the tasks.
 
It is then also useful if you need to put a wrapper around the child tasks, such as checking that a user has authority to run the tasks.
  
http://www.international-presence.com/images/bestuse/hubtask.png
+
[[File:bestusehubtask.png]]
  
 
Keep tasks fairly small for management and performance, split them up if possible into separate tasks.
 
Keep tasks fairly small for management and performance, split them up if possible into separate tasks.

Latest revision as of 15:19, 19 August 2015

It's a good idea to organise your Presence Tasks into well defined Categories. For instance reusable Resources can all be gathered into one Category, so that you'll always know where your Resource is.

Another advantage of organising Tasks into Categories is that it is possible to set the task properties for all the tasks in a category via the 'Edit All Task Properties' button when you right click on a category.

Bestusecategoryoptions.png

Often when building a system you have no idea of how it's going to change in the future.

The best way to handle this change is with well ordered tasks and categories so that you know where everything is and what everything does.

To aid change management store common text (eg url to server, company name, company email) in a Global Variable.

Bestusefileservervariable.png

This way, if it changes you just have to make one change to that variable rather than searching for \\serverep\e$\ everywhere and changing that.

Bestuseglobalvaruse.png

Object/Resource reuse. If you're comfortable with SQL then it might be an idea to use a variable ${sql} in an sql query

Bestusesql.png

The ${sql} variable then gets set before the SQL node. Bestusesqltask.png

Bestusesqlvar.png

Where possible, embed tasks Bestusetask.png for reuse. Identify which tasks are repetitive and make them specific where necessary with variables.

Also bare in mind, that once on the queue, tasks are cached and so do not need to be reloaded each time they run.

It may also be an idea to create a 'hub task', where lots of tasks go through. This is especially useful if you have lots of ondemand tasks.

You create a single task and pass a value for the real task you want to run, then use a switch node to call the actual task, this simplifies management.

It also makes it easier to find your tasks (as you can see them in the hub task).

It is then also useful if you need to put a wrapper around the child tasks, such as checking that a user has authority to run the tasks.

Bestusehubtask.png

Keep tasks fairly small for management and performance, split them up if possible into separate tasks.

As tasks get larger the graphical editor will also slow down. Ideally each task should perform one function, which then aids reuse. Annotate tasks for clearer understanding. You may understand what the task does when you create it, but in a months time it may be less obvious.