Forum

Problem with priori...
 
Notifications
Retirer tout

Problem with priority conflict between "regular between 2 dates" and "as soon as possible"

8 Posts
2 Utilisateurs
0 Reactions
8,656 Vu
DEDIEU
(@jcde)
Posts: 104
Active Member
Début du sujet
 
[#921]

Hello

We would like to create all tasks in as soon as possible mode so that priorty can be managed thanks top priority field. But we have one task (project management) on our projects that are shared all along the year and so that we define as regular between dates. But this task has priority on the others. So the priorty rule between "regular between 2 dates" and as soon as possible is a problem for our scheduling.

Could you explain why "regular between 2 dates" has priority to "as soon as possible"? Why did you attach a priority notion to the planning mode as there already is the priority notion via the priorty field? This makes it more difficult to manage priorities.

How could we change this priorty rule in the code?

Thanks


 
Posté : 25 Jan PM 21:011
(@babynus)
Posts: 14952
Membre Admin
 

When a task is defined as "Regular between dates", it means you have to plan some regular work, whatever other tasks, to be sure some time is left for these tasks.

Thats why "Regular between dates" has top most priority.

This is defined in code /model/PlanningElement, method sortPlanningElements($list).
You can remove this default behaviour
Change

$crit=($elt->idPlanningMode=='2' or  $elt->idPlanningMode=='3' or  $elt->idPlanningMode=='7')?'0':'1';

with

$crit='1';

 
Posté : 26 Jan PM 21:011
DEDIEU
(@jcde)
Posts: 104
Active Member
Début du sujet
 

I agree with you but :
When current delivery is late, the CDP must prioritize the technical activities. The "transverse" activities become less priority.
Our activities (transverse) are planned throughout the year. Occasionally technical activities must interrupt.
I use the term "Regular Between dates" for "transverse" activities throughout the year, and "as soon as possible" for technical activities.
How do you manage in my case without modifying the code to manage its priorities technical activities and "transverse" activities ?


 
Posté : 28 Jan PM 13:011
(@babynus)
Posts: 14952
Membre Admin
 

How do you manage in my case without modifying the code to manage its priorities technical activities and "transverse" activities ?

I do not 🙁


 
Posté : 28 Jan PM 13:011
(@babynus)
Posts: 14952
Membre Admin
 

Maybe this need would require new planning mode : "Urgent !"
This mode would mean : asap with higher priority than every other task.
Then, priority for these tasks would manage priority only between urgent tasks.


 
Posté : 28 Jan PM 14:011
DEDIEU
(@jcde)
Posts: 104
Active Member
Début du sujet
 

Yes it is a solution! Easy to implement in the code?
But why not give priorities to manage the priorities of different planning mode?


 
Posté : 28 Jan PM 14:011
(@babynus)
Posts: 14952
Membre Admin
 

Easy to implement in the code?

not too hard, as is is exactly as ASAP, with just higher priority.

But why not give priorities to manage the priorities of different planning mode?

Because in most cases when you add a task as "regular between dates", you won't change priority. Therefore you really need it to be planned before other ones, even with higher priority.
Also because it is actual running way, and I don't want to change rules that may lead to change planning calculation for existing plannings.


 
Posté : 28 Jan PM 14:011
DEDIEU
(@jcde)
Posts: 104
Active Member
Début du sujet
 

Ok I understand.
I'm planning to test this week, to make sure the behavior is OK.
If it's OK, I'll create in the user menu (profile CDP) can choose its planning mode (with or without management priorities for planning modes)

In the code /model/PlanningElement, method sortPlanningElements($list) i don't find :


$crit=($elt->idPlanningMode=='2' or  $elt->idPlanningMode=='3' or  $elt->idPlanningMode=='7')?'0':'1';

but i found :

static function comparePlanningElementSimpleOld($a, $b) {
    // idPlanningMode '2'=>REGUL '3'=>FULL '7'=>HALF
  	if ( ($a->idPlanningMode=='2' or  $a->idPlanningMode=='3' or  $a->idPlanningMode=='7') and 
         ($b->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
      return -1;
    }
    if ( ( $b->idPlanningMode=='2' or $b->idPlanningMode=='3' or $b->idPlanningMode=='7') and 
         ($a->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
      return +1;
    }
    if ($a->prioritypriority) {
      return -1;
    }
    if ($a->priority>$b->priority) {
      return +1;
    }
    
    if ($a->wbsSortablewbsSortable) {
      return -1;
    }
    if ($a->wbsSortable>$b->wbsSortable) {
      return +1;
    }
    return 0;       

I puts in the comment section of code ?

    // idPlanningMode '2'=>REGUL '3'=>FULL '7'=>HALF
  	if ( ($a->idPlanningMode=='2' or  $a->idPlanningMode=='3' or  $a->idPlanningMode=='7') and 
         ($b->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
      return -1;
    }
    if ( ( $b->idPlanningMode=='2' or $b->idPlanningMode=='3' or $b->idPlanningMode=='7') and 
         ($a->idPlanningMode!='2' and $a->idPlanningMode!='3' and $a->idPlanningMode!='7') ) {
      return +1;
    }

Thanks for your support


 
Posté : 28 Jan PM 16:011
Share:
Retour en haut