Submitted by Armando on 2009/09/25 19:56
I didn't find any clear indication on the best way to use these fields and their function, especially since there are other similar fields like TaskActStart & TaskActEnd.
 
 
 
1- StartDate (+EndDate &TaskDate) : What are these for exactly ? How do they work / are related with/to TaskActStart & TaskActEnd ?
 
[edit : guess it's for billing ?]
 
 
2- Also a few words about :
 
TaskID & NextTaskID : I understand they're linked to the gantt chart and help understand how tasks are linked (Linking tasks together using the gantt chart will automatically assign tasks IDs). But are there other "functions"  to these fields ?
 
 
Thanks !
 
 

Comments

  • StartDate, EndDate is for billing
  • TaskAct... is for project planning (i.e. with or without usnig the Gantt)
  • TaskID and NextTaskID are assigned values when you link 2 tasks using the Gantt. These work in conjunction with the done field and Tools>>Options>>2.1.5 (next task actions. Details follows:
Say you have these tasks
  1. task 1
  2. task 2 (depends on task 1 being finished)
  3. task 3 (depends on task 2 being finished)
  4. task 4 (depends on task 1 being finished)
When you mark task 1 as done, the Tools>>Options>>2.1.5 auto-assign rules will be executed on the next tasks (many tasks can depend on task 1).
 
In the sample IQBase, the actions are to set the DueDate to today's date.
 
So in this example, when you mark task 1 as done, both task 2 and task 4 will now have DueDate = Today.
 
You can then use the To-Do's grid to view these. Only tasks which can be done will be shown in this grid, as in this setup, tasks are not given DueDates until the ancestors are done.
 
Summarizing, initially, only task 1 has a DueDate. The Project grid will look like this :
 
 
 
and is clearly shown in the To-Do's grid. Other tasks are not shown:
 
 
 
You've now completed Task 1. As you mark it done, notice how Task 2 and Task 4 now have DueDate (and change color):
 
 
 
And again, the To-Do's grid, shows you Task 2 and Task 4 (and not Task 1 or Task 3):
 
 
Notes:
  1. Once the tasks have been entered, using the Gantt, tasks can be managed exclusively from the To-Do's grid if desired. That is, a task can be marked as done in the To-Do's grid or in the Project grid. You decide! The result is the same (the To-Do's grid will require a refresh to show the new tasks 2 and 4, and hide the completed task 1)
  2. A field (similar to the supplied Urgency field) could be setup to give a priority to task, based on TaskEnd, DueDate and Today's date. That way, more critical tasks would be higher in the list, and perhaps would show in a different color. Endless possibilities...
HTH
 

Armando

2009/09/26 00:21

In reply to by Pierre_Admin

Thanks a lot Pierre.
(all this should be put in the manual somewhere...)
 
Here are a few comments
 
1- I'm still not sure of how the duedate concretely relates to the TaskActStart/TaskActEnd. But maybe is it a terminology thing... And maybe do they have nothing to do with each other -- which seems a bit weird from my point of view.
 
 
2- seems to me that :

a- TaskActEnd of a specific item should work in relation with
-its "DueDate" (if "due" means that the task needs to be ended/finished by that date) -- of course it could be reajusted depending on the actual work/end of task,
- and finally the value should depend on the "done" date of the item (since the name is task actual end and not projected end)?
 
b- TaskActStart should/could also work  in conjunction with other fields like:
- the "done"/dueDate fields of the previous task(s) and(if the taskID relationship applies) -- and could of course also be reajusted if needed. (ie : if task1 is completed, task 2 gets a value both for duedate (if empty) and the same (initial) value for TaskActStart... Or something like that)
- The TaskActStart can then be reajusted according to real life situation
 
 
But maybe is there another logic to the way it's organized at the moment... but I'm not sure I'm getting it fully.
 
 
 
 
3- In the sample dB (I looked at it today just to see what I'm missing in my own implementation...) I noticed a few (confusing) things :
 
 
a- By default, a task can be marked "done" but not be 100% completed (Task%complete field).
 
b- conversely : by default, a task that's 100% completed is not necessarily marked as done.
 
c- also, some items, for example itemID 1418 (sample DB), have data like this :
 
EndDate  : 2007-10-08 16:30:00
StartDate : 2007-10-08 09:00:00
TaskDate : 2007-10-08
 
TaskActStart : 2008-05-25
TaskActEnd : 2008-06-03
 
This is hard to get... What's up with the end date in 2007 and/but Task actual end in 2008 ?
Is that a mistake or is there something I'm missing ?
Or... most probably these are completely unrelated. But if they are somewhat unrelated, I think that the End Date and Start Date should probably somewhat reflect the TaskActStart and TaskActEnd to ease the user's learning curve... :)
 
 
4- Short descriptions in the fields "description" text box (field management dialog) would be extremely useful for all these fields used in gantt, projects, tasks....
 
 
 [EDITED : explanations in "2-" were poorly written... Still not great but better, hopefully]
 
P.S. :
I didn't know about the DueDate thing (ie : next tasks automatically being assigned a due date when previous ones are marked as "done" (or even just checked since the "check" field has an auto-assign rule filling the done field with "today"), thanks to the TaskID and NextTaskID fields which I never used since I haven't really used the gantt chart to manage projects... yet. (Still sticking to Outlook for my task management because of syncing... But will try to manage the bigger picture with IQ leaving the smaller tasks / details to Outlook).

Armando

2009/09/27 16:19

In reply to by Armando

(I'm currently trying to write some functions to illustrate how I see the relationship between all these fields. Will post back soon.)

Armando

2009/10/04 23:39

In reply to by Armando

[This has been edited --  Sorry, I forgot to update it after modifying a few things not working/updating correctly.
Now most functions are used in the auto-assign part of the equation section in the field management dialog. It's still pretty rudimentary and some functions are redundant, but it gets the job done.]
 
These are the scripts I currently used (well don't use it that much, yet... So if someone has some better suggestions... Please, let me know!
 
as the IQ's gantt is incomplete  (Pierre told me he'd include the usual planned-Scheduled / Actual differenciation in the chart, using 2 diff. colours) this is only some temporary solution.
 
 
' THE FOLLOWING FUNCTIONS TAKE INTO ACCOUNT THAT when "CHECK" is checked, done = today (when unchecked, done is emptied)
' This is made possible through the auto assign section of the check field :
' A:done=now | E:Done=
'
' Conversely when Done is filled, "check" is checked (= -1)
' A:check=1 | E:check=
'
' I've also got  some icon stuff going on also thanks to auto assign rules to make things more user friendly...
' Now... on with the functions...




'=============================================================
' when task%complete = 100, "Check" field is checked (and done = today)
'
' Serves to determine if "check" field has to be checked (+ done = todays date).
'
'=============================================================
 
' Use in task%complete auto assign AM:check=TaskCompleted(Check,taskPerComp)

' NOTES : ("taskPerComplete" needs to be task%complete when transc)


Function TaskCompleted(Check,taskPerComp)

  if taskPerComp = 100 then
    TaskCompleted = -1

  elseif (taskPerComp < 100 and taskPerComp <> 0) then
    TaskCompleted = 0

  else
    TaskCompleted = check
  
  end if

end function


'===============================================================================================
' To allow reversing to the last Task%Complete if task accidently marked as done.
'
'===============================================================================================

' used in "task%completeLast" field equation section (a custom number field you need to create) :
TaskPerComplete_Last(Task%Complete,Task%CompleteLast, done)


Function TaskPerComplete_Last(TaskPerComplete,TaskPerCompleteLast, done)

   if isnull(done) then
    TaskPerComplete_Last = TaskPerComplete
  else
    TaskPerComplete_Last = TaskPerCompleteLast
  end if

end function



'===============================================================================================
' "check" is checked --> task%complete = 100  but only if TaskActEnd and TaskActStart are not null

' Sert à déterminer si valeur de Task%complete doit être augmentée à 100. Décidé de tenir compte des champs TaskActStart et TaskActEnd pour éviter de peupler inutilement le champ Task%complete
'===============================================================================================

' used in "check" autoassign AM:task%complete=taskPerComp(Check, Task%CompleteLast, TaskActStart, TaskActEnd)


Function taskPerComp(Check, TaskPerCompleteLast, TaskActStart, TaskActEnd)

  if check = -1 then
    taskPerComp = 100

  else
    TaskPerComp = TaskPerCompleteLast
  end if

end function



'=================================================================
' When DueDate hasn't been set, TaskActEnd will give it its value.
' Else it stays as it is, even if TAskActEnd changes
'
' (that is because a due date, when it's been set, has nothing to do
' with the real actual date of completion of a task.)
'=================================================================

'Used in TaskActEnd autoassign AM:duedate=DueDate_EQ_TaskActEnd( duedate,TaskActEnd )


Function DueDate_EQ_TaskActEnd( duedate,TaskActEnd )         '

  if isnull(DueDate) then
    DueDate_EQ_TaskActEnd = TaskActEnd
 
  elseif isnull(TaskActEnd) then
    DueDate_EQ_TaskActEnd = duedate

  else
    DueDate_EQ_TaskActEnd = duedate

  end if

end function





'=================================================================
' When TaskActStart hasn't been set, DueDate will give it its value. Else it stays as it is, even if TAskActEnd changes.
'=================================================================

'  This function is used in the duedate autoassign section : AM:taskactend=TaskActStart_EQ_DueDate(TaskActStart, duedate)


Function TaskActStart_EQ_DueDate(TaskActStart, duedate)
 
  if isnull(TaskActStart) then 
    TaskActStart_EQ_DueDate = duedate
 
  else
    TaskActStart_EQ_DueDate = TaskActStart

  end if 

end function




'=================================================================
' When TaskActEnd hasn't been set or is : inferior to the new DueDate value AND the tast/project is not 100% complete,
' DueDate will give TaskActEnd its value.
' If the done date is inferior to the TaskActEnd Value, it'll win over and TaskActEnd will equal the done date.
' Else TaskActEnd stays as it is, even if DueDate changes.
'
' (That is because it helps seeing the time line of a project to really have taskActEnd
' to coincide with due and done dates when possible. BUT if a task has been completed ahead of
' time, it's also good to see it as such as it shows that there's more free time for other tasks !)
'=================================================================

' This function is used in Autoassign equation section of duedate and done : AM:taskactend=TaskActEnd_EQ_DueDate_or_done(TaskActEnd, duedate, done, task%Complete)


Function TaskActEnd_EQ_DueDate_or_done(TaskActEnd, duedate, done, taskPerComplete)

  if isnull(TaskActEnd) then 
    TaskActEnd_EQ_DueDate_or_done = duedate
 
  Elseif isnull(done) and TaskActEnd < duedate then
    TaskActEnd_EQ_DueDate_or_done = duedate
   
  Elseif not isnull(done) and done < taskActEnd then
    TaskActEnd_EQ_DueDate_or_done = done

  Else'if not isnull(done) and done>taskActEnd and taskPerComplete = 100 then
    TaskActEnd_EQ_DueDate_or_done=taskActEnd

  end if

end function



'================================================
'Pour modifier la date de done automatiquement
'================================================


'=================================================================
' When TaskActEnd and Done don't correspond, "DatesDoneMismatch" will get ticked
' + icon exclamation mark (auto assign rule in DatesDoneMismatch)
' When due date date and taskActEnd don't correspond and task is not completed, then DueDateEndDateMismatch field is ticked.
'=================================================================

' Thid function is used in the TaskActEnd and dONE auto-assign : AM:DatesDoneMismatch=DatesDone_Mismatch(TaskActEnd, Done)


Function DatesDone_Mismatch(TaskActEnd, Done)

  if TaskActEnd <> Done then
    DatesDone_Mismatch = -1

  end if

end function


' Thid function is used in the TaskActEnd and duedate auto-assign : AM:DueDateEndDateMismatch=DueDateEndDate_Mismatch(duedate,TaskActEnd,task%complete)

Function DueDateEndDate_Mismatch(duedate,TaskActEnd, taskPerComplete)

  if duedate <> taskactend and (taskPerComplete = 0 or isnull(taskPerComplete)) then
    DueDateEndDate_Mismatch = -1

  end if

end function