A few questions

B

Bill Ehrreich

We're currently evaluating MS Project server 2003. We have a few
questions that perhaps some of you experts can help us with. These
are as follows:

1. Can we add custom fields for task entry that show up as listboxes
to the user but derive their values from SQL queries or stored
procedures from another SQL Server database (not the MS Project
database). Furthermore, can we design it so that selections in the
second listbox depend on what is selected in the first (the second
listbox is requeried when a value is chosen from the first listbox).

2. If we create a Enterprise Global Template, use it for a while,
then amend it, what will happen to the data for existing projects?
For example, if we delete custom field 1 and add custom field 8, will
we lose data for custom field 1 for all existing projects?

3. I believe that Master projects are possible in project server, but
I've noticed that some experts discourage their use for performance
reasons. Can you clarify this?

4. Can we use the Resource Substitution Wizard to simply substitute
employee B for employee A for each occurrence of employee A in
projects companywide?

Thanks

Bill E.
Hollywood, FL
 
G

Gary L. Chefetz \(MVP\)

Bill:

See my comments in line with your questions:

--

Gary L. Chefetz, MVP
"We wrote the book on Project Server
http://www.msprojectexperts.com

-
1. Can we add custom fields for task entry that show up as listboxes
to the user but derive their values from SQL queries or stored
procedures from another SQL Server database (not the MS Project
database). Furthermore, can we design it so that selections in the
second listbox depend on what is selected in the first (the second
listbox is requeried when a value is chosen from the first listbox).

Not using out of the box functionality. This would require extensive
customization or an add-on product.

2. If we create a Enterprise Global Template, use it for a while,
then amend it, what will happen to the data for existing projects?
For example, if we delete custom field 1 and add custom field 8, will
we lose data for custom field 1 for all existing projects?

Yes, unless you moved the values to another field.
3. I believe that Master projects are possible in project server, but
I've noticed that some experts discourage their use for performance
reasons. Can you clarify this?

Save them, don't publish from them, set your system options accordingly.
4. Can we use the Resource Substitution Wizard to simply substitute
employee B for employee A for each occurrence of employee A in
projects companywide?

No. There are other functions that can do this globally on a specific
project but may not be so simple as you expect them to be when you're doing
this mid-stream on a project as there are other considerations that come
into play, such as reassigning remaining work versus re-assigning all work
associated with a resource, including actual work. All are possible
scenarios with the toolset.
 
B

Bill Ehrreich

Gary,

Thank you for answering my questions.

Concerning question 1, which is very important to us:

a. Can you name some add-on products that could give us the
functionality we desire?

b. It would seem to me that a customization would require adding the
requisite fields to the Project SQL Server database, making a slight
change to the Project Web Access user interface (will MS allow it?)
and perhaps writing some VB code to a startup template for MS Project
Professional. Is this correct?

Thanks,

Bill
 
J

John Sitka

Hi Bill, fellow Windian here.

I have also been evaluating Project Server recently.
Trying to make it fit as a finite resource shop floor scheduling tool,
some good, some bad.

But maybe I can help with number three as I was just hammering at it
yesterday.

3. I believe that Master projects are possible in project server, but
I've noticed that some experts discourage their use for performance
reasons. Can you clarify this?

The Microsoft documentation PS2003 Administrator's Guide page 98
outlines the limitation.
Where it impacted me was when I wanted to use a master project as a control
panel to
level and actively manipulate resources for multiple projects.
One would need to open all projects that make up the master project fully on
the client (Project Pro)
and then publish from each individual project in turn to be in keeping with
the Microsoft recommendation.
That recommendation is well heeded as they do describe the dual publishing
of what is essentially the same
task. The task is published once as a distinct task in the Master Project
and once again as a distinct task in the Inserted (or Sub) Project.
Once this gets out to the web (PWA) interface it is a total mess. To assure
it dosen't happen as Gary suggests save the
Master to the Server but don't publish to the Server. This setting is
controlled in the PWA admin section.
I believe a disciplined approach where only The Master was published only
when it was assured "all" subprojects are opened
on the client.(one by one) and a user never published from the subprojects
would work. This may be a narrow
range of application however. depends on size and number of projects. Not
really workable for me here and my target users.

So far I have not found a way to work with (very actively assign and
reassign) all resources in an efficeint enterprise way
(well maybe, but it is like taking a "flyer to the layline" and you know how
those usually turn out).
There is no massive project load that can easily open all projects to be
worked with. That is a good thing because 100
projects would take a very long time to open at once.
All the projects need to be open so they reside in memory on the client so
levelling operations can impact all these projects and the
new asignments can be pushed to the web as a cohesive unit and not with dual
identities.

I've only really investigated the input/active side of this rollout so far.
But first glances at the reporting fucnctionality, and the
enterprise portfolio concept shows that it could cover a lot of what would
normally be derived from a master project.
That's overstepping my knowledge of it really, Maybe better would be to say
"I liked what I saw."

See you out there,
 
G

Gary L. Chefetz \(MVP\)

Bill:

I think you'll essentially want to look at companies with add on timesheets
with greater flexibility than the interface Project Server provides. What
vendor would be appropriate for your situation is impossible for me to say
without knowing more about your use case, but you can find all sorts of ISVs
for Project on the Microsoft site. Begin at the home page for project and
navigate to find partner resources, however it's expressed on that page.

The customization is trickier than you might think because the data is
exposed through a control running on the web page. Here the obstacle is
modifying the grid control. If you want to take a serious look at the
architecture and the API, read everything pertinent you find on the MSDN
site under the Project Server topic area. Microsoft has done a great job
providing documentation in these areas.

--

Gary L. Chefetz, MVP
"We wrote the book on Project Server
http://www.msprojectexperts.com

-
 
B

Bill Ehrreich

Hello John!

I recognized your name and your greeting sounded like that of a fellow
windsurfer, but I couldn't place you. I then remembered that I had
seen your posts on rec.windsurfing. It's

Master projects and resource leveling across multiple projects are not
critical for us at this moment. Even so, the features may become more
important as we move along in our test, so it's nice to understand the
limitations beforehand.

On the other hand, if we can't find a workable solution to my question
1, we may have to scrap this tool.

John, for how long have you been testing Project Server? Have you
come to a decision on whether it will work for your situation?
Perhaps you can give us a few hints of what we might expect.

I don't know where you live, but I hope that you've been able to get
out on the water when you're not tinkering with Project Server. Our
weather is fantastic this time of year--still hot but not oppressive,
and the ocean is still very warm--so I try to sail at least on the
weekends.

Bill
 
B

Bill Ehrreich

Gary,

Unfortunately, I haven't yet had a chance to even play with Project
Server due to security problems at the client company. My questions
arose from a demo meeting that we had recently.

I had a look on MSDN and found some articles on Project Server 2002
architecture, but not 2003. Perhaps I need to look harder.

Is Project Web Access 2003 done in ASP.NET or classic ASP? If it's
ASP.NET, then perhaps you're talking about a simple datagrid control.
I'm an experienced ASP.NET developer so if it's done on that platform,
I shouldn't have much trouble understanding it.

Bill
 
J

John Sitka

season is getting near the end here,
fortunately a friend got me motivated and out into the cold
last weekend. Great time, and I was warmer than expected.
Saturday mid day is looking good for wind and Formula gear.
Sunday longboard. Then a bit into November maybe and that's it.
Still have some vacation this year, was planing Hatteras
right about now but need to stick around for the next month.
Christmas in Cocoa or St.Petes is the revised intention.

I think it is most important what the business is.
I'm working in a custom concurrent design/build manufacturing environment.
We have a legacy of Production Plans in Project desktop.
These are so complex and dynamic that any hope of managing
resource pools effectively quickly fell apart as the constant hunger for
recording actual progress filled up more time than was in a day even
with dedicated full time people. Tasks range from an hour to a two weeks.
Alternate resource options for each task, ever changing task ordering
and parallelism.

I identified early on that any kind of decision making in terms of
scheduling
or reallocation or evaluation of capacity was only as valuable as the near
real time collection of actual progress. With the past failure of the full
time
Project "clerks" to maintain the system. I needed to look for a distributed
means to collect progress. At first glance I didn't think Project Server was
going
to do this for me. The Guides pointed to emailing people in your enterprise
about what was going on, how ya doing. etc. And then there was mention of
approval of hours etc. It presented to me a veil of communication but no
automation.
Once I started hammering away on it I realise how effectively I could
distribute
task sheets and and collect them back and use them to update project. This
one
simple mechanism gave me new hope and I've been trying to fit it in to what
our
plants need.

I've looked at many scheduling packages so far even some abstract simulation
models to handle just the capacity planning part of it in an abstracted
inacurate
but better than nothing sort of way. Almost all the packages are some
offshoot
or module of a full ERP system. These are great but they get a lot of their
power
from the massive amount of well thought out interrelated aspects of the full
package. That often comes down to some automated data collection in the
form of barcoding lots/units. I dismissed this as being yet another layer
that needed
a definition much to constrained for our business. We have a large group of
highly skilled
people with a lot of autonomy, they can easily be accountable within their
field of influence
and add value by along the timeline by increasing the accuracy of estimates
everyday.
The problem is these individuals are not "black box" entities when it comes
to a schedule because
they are constrained, as is the whole company by a set of highly capable but
highly indemand set of
machines. Each operation on these machines is fully custom, There is no
historical reference that set
up takes 2 hours 99% of the time or that production of 500 widgits takes two
shifts. Each widgit is unique.
one of a kind. But the plan is set in motion with some level of
predicability, we have knowledgable individuals
that can make good estimates, but things are very,very time constrained. And
again this is concurrent design/build.
A customer can make changes along the way, it is what needs to be done to
get our product "in motion" as soon
as possible, some times you have to go backwards or recover but that is
expected net result is shorter delivery times
but it would drive highly organized waterfall types crazy. I guess this is
really the manufacturing equivalent of Extreme
Programming.

So that's the background, what was the question? ;-)

How long looking?

About a month real hard now.
Project server for the most part is ASP and Javascript.
As mentioned the actual editing is done with Active X controls
Pj11enuC Class and PjAdoInfo3Class for example.
These may or may not contain .NET Datagrids, looks like it
but can't be sure.
The Windows Sharepoint Services interaction taps into WSS itself
which is fully dynamic, There are no web pages really.

I mentioned above the "hope" I had once I had found a web distributed
mechanism
to update my projects. Well the extensibility of this is as far as I can see
limted.
I think it really comes down to the database design or data object model.
There isn't a database design.
There are no keys, or triggers or constraints or procs that define what the
data means and how
one piece interacts with the other. All that is in the Project application
itself.
This drives me crazy of course and I'm constant looking for something
Project Like that has
a solid database design behind it. Most obvious is when all projects need to
be open for them to interact.
The Project Objects probably aren't built around the most advanced Object
Database concepts either.
If they were then there would be a an option to leave all objects in memory
on the server and make sure
you have a good battery/hydrogen backup power. The each client or web or
whatever could que up and make
transactional changes. This dosen't exist.
But there are all kinds of little things that you see that are big hurdles
when you try and scale this to a fifo
distibuted application. That page 98 reference I pointed out to you is when
the shit hits the fan.
There are ways to learn the data store (<-not base) and manipulate it but
there is not a whole lot
of resources to figure it out. On these groups you do occasionaly see folks
post some SQL that does something.
These folks probably have good insight into the inner workings of Project
itself. Others automate with VBA.
I wa never much of a VBA user. Early experience had me battling slowness
alot. maybe bad code maybe
the wrong tool, not sure but a lot of work that couldn't sstand up to the
real world. Maybe Project is different
haven't tried.

If you made it this far....

about your requirement #1. You mentioned that you needed to edit a task page
so you could have a selection.
After a few minutes looking at NewTaskPage.asp? I would sure try to alter
this and see where it got me...

....some code was here..but wouldn't post....

What was above was basically the textbox where you enter the task name. It
could be
generated from a select box. Saving would be a trial and error thing as
there is a whole lot of
other scripts going on at the same time. Is the submission made via ASP, or
JAVA ? depends on how they get to the object in the form for the post
method.
Might impact validation too once the input object type is changed, but well
worth a try.
 
B

Bill Ehrreich

Gary,

I went back to the Microsoft site and downloaded the Project 2003 SDK.
I looked at the documentation on the grid control (pjgrid.ocx).
Unfortunately, I could not view the sample locally because I didn't
have the control installed on my machine. However, I would say that
it is a rather clumsy approach to do database calls with ADO on the
client side. Also, while I may be able to add listbox controls to the
grid and populate them using ADO, I still need to ensure that the
values selected for the listboxes are saved into the appropriate
custom fields in the Project Server database. Correct me if I'm
wrong, but I think this would still require me to change some code on
the server side. I don't see anything in this SDK that refers to
customizing the server side code for PWA.

I also looked at the Project Data Service API, which seemed more
useful to me. It appears that I can manage the value lists for my
custom fields using EnterpriseCustomFieldsUpdate. After looking at
this, it seems to me that I could do the following:

*Create custom fields as value lists through the normal process in
PWA.

*Create an executable in VB6 or .NET that would be used to
periodically update the value lists. This executable would run to the
source database, fetch the lists of values for the custom fields and
update them using EnterpriseCustomFieldsUpdate. While this is still
an clumsy approach, it keeps me from having to modify the server side
code in PWA.

*Create an add-in to manage the value lists from MS Project
Professional so that list 2 is abbreviated based on the selection in
list 1, etc.

Please tell me if this makes sense to you.

I should have a chance to finally play with Project Server today and
do some testing with the grid control and the API.

Bill
 
B

Bill Ehrreich

John,

Thank you for sharing your experiences with me. I looked at some of
your old posts going back to May and it appears that you've been
struggling trying to make Project Server work as a means of handling
not only human, but also machine resources.

While I haven't really spent any time with project server, I would
probably agree with what you said about the lack of server side
processing. The cross-project resource leveling example provides a
glaring example. One would think that it could be accomplished so
much more elegantly with procedures on the server (database) rather
than loading all of that data into the client. My first impressions
are that Project Server was designed more as a means of patching
together existing MS products/technologies. Perhaps the next version
will more closely resemble the application designs that MS is
advocating for .NET applications. In fact, perhaps the next Project
Server will actually use ASP.NET rather than ASP!

Bill
 
J

John Sitka

My newsreader dropped my 'story' but I'm hope it
might have helped, or at least was entertaining in a
"what's this guy smoking" kind of way.

About the controls,

I took a split second to change a form on newtaskpage.asp from textbox to
select
and as expected there was some validation or event failure. But with
patience
and investigation this may be doable.

With respect to the Grid controls, where do you require a constrained edit
there?
Maybe resource custom enterprise fields? Just curious. But anyway keep us
posted.

Personnally I'm really looking for a scheduling engine that is SQL
databased.
I know then the extensibility and maintainability would not disappoint but
folks
just don't offer these up for evaluation without a large committment.
If you have come across some please inform.
 
B

Bill Ehrreich

Gary,

Thank you for the reassurance.

I have had some time today to play with Project Server. Talking to
PDS with XML/SOAP has been fairly straightforward and I think that I
shouldn't have much problem with it.

However, the seemingly simpler part of the problem is looking to be
more difficult. Perhaps you can offer me a suggestion or two.

I'm trying to see if I can modify the listboxes that represent my
custom task fields in Project Professional at runtime. I can see the
listboxes as soon as I try to enter tasks for a new project using the
Enterprise Global Template. As you may remember, I wanted to be able
to limit the selections available in listbox 2 when a value was
selected in listbox 1 as tasks were entered. Unfortunately, I have
noticed the following:

*I have no events to use to attach an event procedure except
Project_Change. I don't have Task_Change, much less
EnterpriseText1_Change (a BeforeUpdate event would be even better!).
Using Project_Change will be clumsy because it will be firing most of
the time for things that I don't want to trap.

*I can access the values of my custom field listboxes (I can do both
Get and Set) but I can't see how to access the lists behind them.
Does the MS Project object model provide a way?

Thanks,

Bill
 
B

Bill Ehrreich

Gary,

One more question:

While it seems that I can use PDS to update my custom field value
list, is there any reason why I couldn't simply do the update using
SQL Server? I could very easily create a DTS package to update the
required records in the appropriate table. Would there be any danger
of throwing something off by going straight to the SQL tables rather
than using the PDS API?

Bill
 

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