on 2013 Dec 23 6:38 PM
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
3. Parent Summary Task from CRTD to REL, and automatic Child Task REL of entire subtree needs to be prevented
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 released. The 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
Request clarification before answering.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.