Difference between revisions of "Organisation"

From PresenceWiki
Jump to: navigation, search
Line 4: Line 4:
  
 
http://www.international-presence.com/images/bestuse/categoryoptions.png
 
http://www.international-presence.com/images/bestuse/categoryoptions.png
 
[[Image:/images/bestuse/categoryoptions.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 13: Line 11:
 
To aid change management store common text (eg url to server, company name, company email) in a global variable.
 
To aid change management store common text (eg url to server, company name, company email) in a global variable.
  
 +
http://www.international-presence.com/images/bestuse/fileservervariable.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
  
 
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
  
The ${sql} variable then gets set before the SQL node.      
+
The ${sql} variable then gets set before the SQL node. http://www.international-presence.com/images/bestuse/sqltask.png
  
 +
http://www.international-presence.com/images/bestuse/sqlvar.png     
  
Where possible, embed tasks for reuse. Identify which tasks are repetitive and make them specific where necessary with variables.
+
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.
  
 
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 35: 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
  
 
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.

Revision as of 11:56, 18 March 2009

It's a good idea to organise your 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.

http://www.international-presence.com/images/bestuse/categoryoptions.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.

http://www.international-presence.com/images/bestuse/fileservervariable.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.

http://www.international-presence.com/images/bestuse/globalvaruse.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

http://www.international-presence.com/images/bestuse/sql.png

The ${sql} variable then gets set before the SQL node. http://www.international-presence.com/images/bestuse/sqltask.png

http://www.international-presence.com/images/bestuse/sqlvar.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.

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.

http://www.international-presence.com/images/bestuse/hubtask.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.