Setting fixed task start and end date

P

Pr4gm4tik

I am inserting tasks into the project from another system using a .net
utility running against the Project Pro 2007 object model.

I need to set absolute start and end dates for tasks -- I do not want
Project Pro to change these dates for any reason. I have turned off
automatic calculation for the project, but it still seems to adjust the dates
as it seems fit.

The reason this is important is the project is being published to Proj
Server 2007, and tasks can only be auto-populated in the user's timesheet if
the task is scheduled within the timesheet period, so I need to make the date
range wide enough to cover all possible timesheet periods.
 
M

Mike Glen

Hi Pr4gm4tik ,

Try posting on the server newsgroup. Please see FAQ Item: 24. Project
Newsgroups. FAQs, companion products and other useful Project information
can be seen at this web address: http://project.mvps.org/faqs.htm

Mike Glen
Project MVP
 
P

Pr4gm4tik

Hi Mike,

I have posted this in the server group as well, although I do want to point
out I am trying to accomplish this in Project Pro 2007, not in Project
Server. Server plays into it in a sense, but it is the thick client app that
is adjusting the dates.
 
M

Mike Glen

So you want someone here to give you an answer and waste someone else's time
in the server group?

The only way to fix a date is to use the Must Start On constraint or the
Must Finish On constraint. Any others won't do. Are they the constraints
you're using? In any event, you would do best to make them all As Soon As
Possible and put deadline dates to alert you of problems. Project's job is
to tell you want is possible with the data you've entered - let it do it's
job.

Mike Glen
Project MVP
 
M

Mike Glen

I'm sorry I was a bit short in my comment as we abhore cross-posting. I
didn't realise you'd posted to the server as a result of my suggested
direction, I understood your commet to indicate you had already posted to
both newsgroups at the same time.

Mike Glen
Project MVP
 
P

Pr4gm4tik

I'm unsure what made you feel the need to be combative. You suggested I post
to the server group, and I followed your suggestion and that's the only
reason I posted there. You now seem to be contradicting your own advice at
this point and chastizing me for posting in both places.

I had no intention of wasting anyone's time who was not inclined or able to
help, I'm simply trying to use the groups for what they are hear for, and I
posted an MS Project Professional question in the general group and was then
asked to move it to the Server newsgroup. I was simply pointing out that it
was not a Project Server question; I mentioned Project Server to provide
insight into the higher level task I need to solve.

Regarding letting Project do it's job, I understand what you're saying and
it's my personal opinion that Project is not the best tool for the task my
boss wants to accomplish. I suggested that I can develop a custom app in C#
in a relatively short that behaves *exactly* as desired, but there is a basic
philosophy of integrate versus build here. If we cannot get Project Pro /
Project Server to behave as desired it makes an excellent case for developing
a custom solution.

To answer your question, the tasks do not have constraints currently. I
have experimented with constraints to see if they solve the problem, but they
don't. The constraint of As Soon As Possible is the default. I have
experimented with all of the different constraint types and still have not
found a way to absolutely set the dates to, for example 1/1/2008 - 7/1/2008.
Why on earth would I want every task to have a six month duration? That
leads me back to where Project Server comes in... it will only autopopulate
timesheets with tasks if the task falls within that time period. These tasks
are being imported into Project from another system, without scheduling
information, so we need them to appear in the user's timesheet without regard
to scheduling. The six months timeframe is arbitrary, we need to be able to
set it to 60 days, or 2 years, or whatever is needed to ensure it always
shows up in the user's timesheet.

If you or anyone can help, that's great. I'm uninterested in engaging in
unconstructive arguments.
 
P

Pr4gm4tik

No problem. I posted my response before I read your update.

Still, appreciate all help I can get.
 
M

Mike Glen

Project will only allow you to put a constraint on one end of a task, not
both. Try making one of them a Must... constraint and see the other being
driven by the Duration you enter.

Mike Glen
Project MVP
 
P

Pr4gm4tik

Here's an example following using that approach:

//Add the task
tsk.ConstraintType = MSProject.PjConstraint.pjMFO;
tsk.ConstraintDate = "12/15/2008";
tsk.Duration = 432000;

Here I have basically said finish on 12/15/2008 no matter what, with a
duration of 90 days (from what I've read duration is mins * 10, with an 8
hour day being 4800 so its 4800*90).

With that code I get tasks that end on 12/15/2008, but start on 3/27/07.
Perhaps there is a problem with my duration value? I tried experimenting
with the duration settings under Tools > Options > Schedule and it only made
a difference in the way its displayed, the dates came out the same.
 
M

Mike Glen

Don't forget that Duration is always in working time according to your
calendar settings, ie 90 days Duration = 90/5 = 18 weeks or about 4 months
and a bit. Have you tried keying in the data rather than using vba to bring
it in? What results do you get then?

Mike Glen
Project MVP
 
P

Pr4gm4tik

If I just enter a task manually, and try to set start and end dates of
9/15/07 and 12/15/07 respectively, it adjusts them to the next working day,
making it 9/17/07 and 12/15/07 (which would be fine). However, unless I can
accomplish something similar programmatically, I don't think we will be able
to use Project for this, because it is essential that we pull data from the
legacy system for import (and since the legacy system is still in use daily,
adding tasks manually is not yet feasible).

Regarding the calendar, mine is set to the default settings:
Week starts on Sunday, Fiscal Year Starts in January, Default Start Time
8am, Default end time 5pm, hours per day = 8, hours per week =40, days per
month=20.

Given those calendar settings, what would be the appropriate duration
setting for 90 days?

Thanks
 
M

Mike Glen

The setting for 90 days is just that: 90 days. Project will interrogate
your calendar and work out the start date based on your finished date.

If you want to program these entries, I suggest, once again a re-direction,
that you post to the developer newsgroup where the experts hang out. I
really can't help with code.

Mike Glen
Project MVP
 
S

Steve House [MVP]

Point out to your boss that Project's design purpose is to create schedules.
It is NOT a tool designed to document and make pretty a schedule that has
already been determined. Task start and end dates are the output of the
program, not input data from the user. IMHO, if you are inputting tasks,
links, and resource and the dates Project insists on calculating are
different from the hard dates your client/boss wants, that's telling you
something very valuable. It's giving you a reality check that the
predetermined dates are impossible to achieve with the workflow and
resources you presesntly plan to deploy and unless you change some of the
physical forces that drive the task schedules your project is likely to
fail. You know the dates you need to hit - Project is intended to give you
an experimental model that can predict outcomes of the decisions you make so
you can ultimately figure out just what you have to DO in order to meet
those required dates.

Steve House, MVP
 
P

Pr4gm4tik

Thanks, and I will try the developer group. I found that by putting a
duration of 90,000 I was able to get most of the tasks to come close (they
come out to 93.75 days) -- some tasks come out to 187.5 days. It seems to
have something to do with the number of resources assigned to the task, in
case you have any thoughts there from an end user perspective (those are
helpful as well since ultimately the project managers will be manipulating
the tasks using Project Pro).
 
P

Pr4gm4tik

Thanks Steve,

However to reiterate what was said in the first post, the only reason we
even care about start and end dates is because of the limitation of Project
Server which will only auto-populate timesheets with tasks which are
scheduled within the same date range as the timesheet period. We could care
less about scheduling, we are simply trying to get the tasks out of one
system, and into Project Server in a way that a user doesn't have to manually
add each task to each sheet. To do that, Project Server requires us to
schedule the task.

That might lead one to believe that this entire thread belongs in Project
Server, however I am doing the scheduling completely in Project Professional,
because we have encountered some insurmountable bugs in the PSI interface
(the web service layer for Project Server) that prevents us from using PSI to
insert the tasks directly into Project Server. Thus, it is easier to work
against the Project Pro VBA object model, and let Project Pro handle the
publishing (since the project managers will need to be able to edit the
project anyway).

I do appreciate what you're saying about what Project is designed to do
versus what we are trying to accomplish... the question at this point is
whether we can possibly force Project to do something it wasn't designed to
do, or do we simply write our own, and I am trying to see if it is feasible
to do the former before embarking on the latter.
 
S

Steve House [MVP]

I might just not be seeing it, but it almost sounds like you have determined
each resources task assignments and schedule and simply need a method to
communicate them to him and get reports back on actual performance versus
assigned. IMHO, using Project and Project server to accomplish that limited
task is like hunting flies with an elephant gun, using Project Server as a
timecard server more than an enterprise PM application. What does using the
Project system to do this buy you that a simple email-based form system
would not?

The gist of a Project management system is to determine the schedule so that
you can know that the second floor bathroom will be ready on Tuesday for Joe
Plumber to show up and install the bathtub. If you don't need that sort of
scheduling, why use an application that is purpose built for creating them
and then publishing them? Server is essentially the tool used to
communicate those schedules on an enterprise level.

Fact is, as you've discovered, it is impossible to simultaneously set both
task set and end dates in granite in Project. Each depends on a whole
laundry list of drivers such as predecessors, resource availabilty, resource
assignment levels, working time calendars, etc as you have already
discovered. Even more subtly, even entering dates in the Start or End
fields doesn't actually enter data into those fields - what really happens
'under the hood' is the user input is redirected and becomes either a Start
No Earlier Than or Finish No Earlier Than constraint. Such a constraint
sets the earliest something can happen but has no influence on whther it
gets scheduled to happen later.

I really don't see how you can achieve what you want if you stay in the MS
Project environment. Sad to say, your options seem to be either figure out
a plan B or change your organzation's workflow to reflect a more
conventional PM model.
 
P

Pr4gm4tik

Thanks, I read the article and its fine work (I rated it highly) :)

And I agree with the general philosophy of one resource per task and that
would probably make life much simpler in this case. However, unfortunately
the tasks coming from the legacy system have groups assigned to them (groups
which only have meaning inside the legacy system), so I have a custom
resource mapping utility that resolves those group names to the actual AD
users (i.e. there are generally between 1-15 resources assigned to a task),
and most tasks fall into that category.

Our goals would be simplified greatly if the legacy system weren't involved.
 
P

Pr4gm4tik

I think you're seeing most of it. The only part of what you've said that I
would change is that we haven't really determined task scheduling at all --
we would like to set it only to get around a limitation of Project Server
(which is populating a user's timesheet with their assigned tasks).

The actual resource assignments and the task themselves come from the legacy
system.

All of the feedback here has been valuable, however, because I believe it
will help with decision-making here.
 
M

Mike Glen

Thanks for your kind words! But what a mess - I feel for you!!!!!!!


Mike Glen
Project MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top