Post

4 followers Follow
0
Avatar

Custom Action to move a task (with subtasks) to a new project, re-set the Due Dates and assign to resources

BACKGROUND:
I have a project called "unscheduled" wherein I hold tasks that have not been assigned to a scheduled release. Once I know the release where that task will be executed, I move the task from "unscheduled" to the scheduled release project.

Each task has three subtasks. Each subtask has it's own deadline. Those deadlines are based on milestone dates in the scheduled release. I am working on a custom action to effectively automate that. I've got some of this working, but there are issues. The Custom Action will need to do the following:

1) Prompt me for the parent release and the resources that will be assigned to the respective subtasks. (basically, a BA, a DEV and a QA) (works great so far.)
2) Move the parent and sub tasks to the release (project) that I have selected. (also works great so far.
3) Set the due date of each of the sub tasks to a date contained in one of three custom fields at the release schedule project level. (this doesn't want to work. I'm using a Reschedule action, which has an if statement that examines the name of each of the subtasks, looks to the appropriate custom date field at the project level and sets the due date to the correct value. It appears to go all the way through the logic and set the due date to the due date of the project. )
4) Set the resource to the resources identified in the CA's form. (this doesn't work either; it's leaving them unassigned.)
5) Set the state to active. (this is working for parent and child tasks.)

I am getting two error messages each time I test it. It names the sysid for the parent task, which reads, "Component with ID T-18744 is not found in Project 'Unscheduled Work'"

I suspect that I've got my order of execution messed up, or it has something to do with queued actions getting out of whack. Or...?

I've tried making the changes before moving it, and I've tried making the changes after moving it. Both results in the same issue.

Any thoughts or direction would be helpful.

Brunswick Lowe Answered

Please sign in to leave a comment.

5 comments

0
Avatar

Hi,

These should be possible - can you share the formulas you used for the actions that did not work?

Guy 0 votes
Comment actions Permalink
0
Avatar

Of course...not sure why I didn't to begin with: 

The Tasks: Here's how my tasks are named. That's important when you look at how I did Action 1 below. To run the custom action, I select the parent task in the "Unscheduled Work" project, and run it. 

Form Variables: Here's the form structure for the Custom Action (NOTE - I'm not using all the fields yet, I want to be sure I can hit the basics first): 

Action 1: This CA is created at the task level. It iterates through the child tasks, testing the names for specific strings, and if they're present, the value of my custom field at the project level is returned. (NOTE: I don't like having those custom values. I have milestones in the project structure that have hard stops, but I'm doing it this way to simplify some timekeeping/schedule maintenance. Can't have it both ways.) For some reason, the tasks all appear to be getting set to the project's due date. (as shown above, 11/9)

Action 2: This sets the task to Active state. Seems to be working okay. 

Action 3: This one is supposed to set the resources from the CA form. I've only got one in there now, but it's not working; until I get it to work, I'm not putting all three (four, actually; PeerReviewer and DEVResource will both be assigned to tasks containing "DEV"

Action 4: This is the actual move of the task and subtasks to the Scheduled Release project - their new home. 

 

Thanks in advance; I sincerely appreciate the effort!

 

Brunswick Lowe 0 votes
Comment actions Permalink
0
Avatar

Hi...just wanted to bump this. Anyone have any thoughts on why my CA seems to be...hosed? 

Brunswick Lowe 0 votes
Comment actions Permalink
0
Avatar

Beata is working on a response for you, it will take some time though since this is a complicated rule.

Josh Santos 0 votes
Comment actions Permalink
0
Avatar

Hi,

My apologies it took a while to reply, however, due to the complexity of the action, you are building,we needed to recreate the action and projects/work items and reproduce every step in our testing environment.

Here are our findings:

Based on your description it seems like two actions are not working curently:

Action 1: This CA is created at the task level. It iterates through the child tasks, testing the names for specific strings, and if they're present, the value of my custom field at the project level is returned. (NOTE: I don't like having those custom values. I have milestones in the project structure that have hard stops, but I'm doing it this way to simplify some timekeeping/schedule maintenance. Can't have it both ways.) For some reason, the tasks all appear to be getting set to the project's due date. (as shown above, 11/9)

Action 3: This one is supposed to set the resources from the CA form. I've only got one in there now, but it's not working; until I get it to work, I'm not putting all three (four, actually; PeerReviewer and DEVResource will both be assigned to tasks containing "DEV"

Both of them use function "Contains" which is used incorrectly. Please find the correct syntax below :

Action 1: 

If(Contains(TargetObject.Name,"ANALYSIS",TRUE),Release.C_RequirementsCompleteDate,If(Contains(TargetObject.Name,"DEV",TRUE),Release.C_DEVCompleteDate,If(Contains(TargetObject.Name,"TEST",TRUE),Release.C_TESTCompleteDate,Release.DueDate)))

Action 3:

Contains(TargetObject.Name,"DEV", TRUE)

Once you fix the syntax the resources will be assigned and the dates will be rescheduled. 

In addition I would like to recommend changing the order of the actions:

1. Assign the resources

2. Move the items to the Scheduled Release project

3. Make it active

4. Reschedule the dates 

I hope this helps. Please let us know if you have any further questions.

Thank you,

Bea

Bea Genthner 0 votes
Comment actions Permalink