cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Prevent or control status changes in CPRO structure objects

Former Member
0 Kudos
1,244

Hi all:

I think I've seen this done before in a previous example/ implementation, but how does one prevent or control automatic status changes from occurring in cProjects, as in the standard system?

Business need/purpose:

1.  To prevent the mass REL of tasks to project participants for execution  (i.e. WF event notification)

2.  To effectively track and manage which project activities are truly "Ready for Processing", without having to analyze project structure dependencies and relationships

Business scenarios:

1.  Item/Project from CRTD to REL (i.e. by project coordinator), but automatic Phase REL needs to be prevented  (discretion of PM or PMO Ctrl)

2.  Phase from CRTD to REL, but automatic Task REL for entire subtree needs to be prevented

  • As with #1 above, direct child objects are released along with parents.  This means the task tree under Phase 1 all gets released.
  • In reality, not all L1 tasks for a Phase becomes ready for processing once the phase is released.
  • Consider task dependencies and relationships:  Certain successor tasks don't need to be released until parents are completed.
  • In reality, only tasks without successors (other tasks) within the phase (or tasks outside the phase that are not completed CMPT) should be released.

3.  Parent Summary Task from CRTD to REL, and automatic Child Task REL of entire subtree needs to be prevented

  • As with #2 above, direct child objects are released along with parents.  This means the task tree under the parent summary task all gets released.
  • Same argument as with #2's bullet points above, there needs to be some kind of control over which subtasks get released, based on dependencies and relationships.


4.  Finally, once predecessor tasks are CMPT or CNCL, then successor tasks should be automatically REL, but only if no other predecessors exist that are not CMPT or CNCL.

At the very least (or, solution question 1 of 2) I'd like to understand if there's a way to disable the standard automatic release of entire sub-objects/ sub-trees when parents are releasedThe next step (or, solution question 2 of 2) would be to enable "controlled" automation using a combination of relationships and status should happen from the phase-down.

Any thoughts?  The only way I can think to do this is via custom development and workflow using BAdI DPR_EVENTS and the various BAPI_BUS function modules.  I'm wondering if anyone's come up with any other options, especially if it's close to standard, or uses standard to a great degree, before resorting to custom code.

Thanks much!

Lawrence

View Entire Topic
Former Member

Hi Miranda,

The solution to most of the business needs you have mentioned above lies in making the TASK to release manually. This is not possible if you try doing it from the related webdynpro components of task or phase.

Once the Phase gets released (like first phase gets released as soon the project structure gets released), all the tasks inside it gets released. When I debugged this we realized that even before the control comes to the WDDOINIT method of the TASK's WD Component (DPR_DET_DATA_TASK_O), the status gets changed to RELEASED.

The status of these Phases, Tasks and Projects can be controlled within a class CL_DPR_STATUS_CHANGE_OBSERVER. This class has methods like ON_PROJECT_RELEASED, ON_PHASE_RELEASED & ON_PHASE_APPROVAL_GRANTED. These methods are solely responsible for everything that happens when a Project gets Released (ON_PROJECT_RELEASED),

when a Phase gets Released (ON_PHASE_RELEASED) and when a Phase gets Approved (ON_PHASE_APPROVAL_GRANTED). In simple words, you can control the "automatic Release" of Task/Phase etc from here.

If you want to make your Tasks non-automatic (i.e manual) Release, just goto these method and comment out the few lines where the Task (or Phase if required) status is changed.