473,394 Members | 2,048 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Ideas or direction needed for approval path

I have this .NET web project that I will need to create web forms that will
allow employees to request personnel actions (for example, request for
vacation time). Depending on what department the employee is in determines
who approvals the vacation time and what paths it follows to get approved.
It could go up to three levels before the vacation time is finally approved.

I guess my problem is that I do not really know where to start with this or
what I should be looking at to get a solution. I am looking for ideas, web
sites, or anything that could get me going in the right direction. I have
looked at the design pattern called Chain of Responsibility, but I think this
is not going to work for me. I have also looked at controlling this all in a
database giving each request an ID number related to a person to approve ID
number. I need this stuff to be scalable.

This is the process that an employee would go through to get vacation time
approved. The employee would log in to a web site and click on a menu that
would display a web form that would ask them about the dates they need to
take off. The employee would then click on a "submit" button.

After the employee clicks on the "submit" button the request will then go to
their supervisor (the supervisor will be notified by e-mail about this
request). The supervisor will then log in to the same web site that the
employee did and will be able to see this request. The supervisor will be
able to approve or reject the request. If the request is approved the
request will go to the supervisor's supervisor for approval. If rejected the
request will go back to the employee with a reason why it was rejected.

After the last supervisor has approved the request, the request will be sent
back to the employee, telling the employee that their request has been
accepted.

Thanks for any help,
Charles

Mar 3 '06 #1
3 1220
Looks like a workflow tool :
http://msdn.microsoft.com/windowsvis...ding/workflow/

Under its simplest form, it would be a "state machine" (basically you have a
table that list possible transitions from one state to others).

--
Patrice

"Charles" <Ch*****@discussions.microsoft.com> a écrit dans le message de
news:52**********************************@microsof t.com...
I have this .NET web project that I will need to create web forms that will allow employees to request personnel actions (for example, request for
vacation time). Depending on what department the employee is in determines who approvals the vacation time and what paths it follows to get approved.
It could go up to three levels before the vacation time is finally approved.
I guess my problem is that I do not really know where to start with this or what I should be looking at to get a solution. I am looking for ideas, web sites, or anything that could get me going in the right direction. I have
looked at the design pattern called Chain of Responsibility, but I think this is not going to work for me. I have also looked at controlling this all in a database giving each request an ID number related to a person to approve ID number. I need this stuff to be scalable.

This is the process that an employee would go through to get vacation time
approved. The employee would log in to a web site and click on a menu that would display a web form that would ask them about the dates they need to
take off. The employee would then click on a "submit" button.

After the employee clicks on the "submit" button the request will then go to their supervisor (the supervisor will be notified by e-mail about this
request). The supervisor will then log in to the same web site that the
employee did and will be able to see this request. The supervisor will be
able to approve or reject the request. If the request is approved the
request will go to the supervisor's supervisor for approval. If rejected the request will go back to the employee with a reason why it was rejected.

After the last supervisor has approved the request, the request will be sent back to the employee, telling the employee that their request has been
accepted.

Thanks for any help,
Charles

Mar 3 '06 #2
Note to self, don't work for this company.

Sounds like an internal application -- I'd go with a Windows Form app and
clickonce deployment via companies internal web site. You'll be able to
produce the app a lot faster via Windows Form and you will have much more
user interface flexibility -- the only requirement is that everyone on the
network have Windows OS.

Definitely a state model with parent/child relationships.

"Charles" <Ch*****@discussions.microsoft.com> wrote in message
news:52**********************************@microsof t.com...
I have this .NET web project that I will need to create web forms that will
allow employees to request personnel actions (for example, request for
vacation time). Depending on what department the employee is in
determines
who approvals the vacation time and what paths it follows to get approved.
It could go up to three levels before the vacation time is finally
approved.

I guess my problem is that I do not really know where to start with this
or
what I should be looking at to get a solution. I am looking for ideas,
web
sites, or anything that could get me going in the right direction. I have
looked at the design pattern called Chain of Responsibility, but I think
this
is not going to work for me. I have also looked at controlling this all
in a
database giving each request an ID number related to a person to approve
ID
number. I need this stuff to be scalable.

This is the process that an employee would go through to get vacation time
approved. The employee would log in to a web site and click on a menu
that
would display a web form that would ask them about the dates they need to
take off. The employee would then click on a "submit" button.

After the employee clicks on the "submit" button the request will then go
to
their supervisor (the supervisor will be notified by e-mail about this
request). The supervisor will then log in to the same web site that the
employee did and will be able to see this request. The supervisor will be
able to approve or reject the request. If the request is approved the
request will go to the supervisor's supervisor for approval. If rejected
the
request will go back to the employee with a reason why it was rejected.

After the last supervisor has approved the request, the request will be
sent
back to the employee, telling the employee that their request has been
accepted.

Thanks for any help,
Charles

Mar 3 '06 #3
Hi Charles,

Sounds like a tough set of requirements. The first thing I would ask is, how
is the organizational hierarchy of your organization currently stored? It
must be stored somewhere. If it is already stored in a database of one sort
or another, you have something to start with. However, the organizational
hierarchy may or may not be related to the hierarchy of the approval
process.

At any rate, we are talking about a hierarchy, a tree of personnel, correct?
I would start with a database of personnel. Each person would have a unique
identifier in the database. As each person only has one person to whom that
person is immediately responsible, you would have a foreign key field in
that record that holds the id of their "boss." The table is then related to
itself. This can get complicated, but as long as you have only one person to
whom a person is immediately responsible, it should be fine. Otherwise, you
have to use a much more complex solution.

So, assuming that each person only has to pass their request to one person
"upstream" you can start with a fairly simple table structure. Example:

Person:
[id] [int] IDENTITY (1, 1) NOT NULL
[parentid] [int] NULL
[name] [varchar] (50) NOT NULL

Example
id parentid name
-------------------------
1 NULL Joe <-----the big cheese
2 1 Bob
3 1 Judy
4 1 Bill
5 2 Fred
6 2 Mary
7 3 Sam
8 6 Job
9 6 Pop
10 8 Harry

Every person in the organization would go into this table. To identify the
next person "up the ladder" you would run a query like so:

select name, id from person where id =
(select parentid from person where id = 5)

name id
-----------
Bob 2

When you get no resulting records, you've reached "the top of the heap."

You can also find out who is immediatly below a given person:

select name, id from person where parentid = 1

name id
------------
Bob 2
Judy 3
Bill 4

And you can find out who the "siblings" of a person are:

select name, id from person where parentid =
(select parentid from person where id = 4)

name id
------------
Bob 2
Judy 3
Bill 4

In any case, you should get the idea.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer

Presuming that God is "only an idea" -
Ideas exist.
Therefore, God exists.

"Charles" <Ch*****@discussions.microsoft.com> wrote in message
news:52**********************************@microsof t.com...
I have this .NET web project that I will need to create web forms that will
allow employees to request personnel actions (for example, request for
vacation time). Depending on what department the employee is in
determines
who approvals the vacation time and what paths it follows to get approved.
It could go up to three levels before the vacation time is finally
approved.

I guess my problem is that I do not really know where to start with this
or
what I should be looking at to get a solution. I am looking for ideas,
web
sites, or anything that could get me going in the right direction. I have
looked at the design pattern called Chain of Responsibility, but I think
this
is not going to work for me. I have also looked at controlling this all
in a
database giving each request an ID number related to a person to approve
ID
number. I need this stuff to be scalable.

This is the process that an employee would go through to get vacation time
approved. The employee would log in to a web site and click on a menu
that
would display a web form that would ask them about the dates they need to
take off. The employee would then click on a "submit" button.

After the employee clicks on the "submit" button the request will then go
to
their supervisor (the supervisor will be notified by e-mail about this
request). The supervisor will then log in to the same web site that the
employee did and will be able to see this request. The supervisor will be
able to approve or reject the request. If the request is approved the
request will go to the supervisor's supervisor for approval. If rejected
the
request will go back to the employee with a reason why it was rejected.

After the last supervisor has approved the request, the request will be
sent
back to the employee, telling the employee that their request has been
accepted.

Thanks for any help,
Charles

Mar 3 '06 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Bert | last post by:
Sorry for the unclear subject line. I've got to write a download script for and existing file manager (we are working on a complete redesign for this file manager, but the functionality of...
0
by: abcd | last post by:
kutthaense Secretary Djetvedehald H. Rumsfeld legai predicted eventual vicmadhlary in Iraq mariyu Afghmadhlaistmadhla, kaani jetvedehly after "a ljetvedehg, hard slog," mariyu vede legai pressed...
0
by: Heiko Wundram | last post by:
Hi all, esp. list admins! Why is it that I always get bounces saying my mails have suspicious headers lately when I post to python-list? This only happens when I reply to myself (as I just did,...
6
by: S.Sigal | last post by:
Hello: Always wanted to do this -- but never knew how... The goal is to write software that goes out to clients -- but I want to be able to auto-update them when there is a later release...
10
by: Wildemar Wildenburger | last post by:
Hi there :) I don't know how else to call what I'm currently implementing: An object that behaves like a list but doesn't store it's own items but rather pulls them from a larger list (if they...
1
by: Oliver Marshall | last post by:
Hi, Im after a simple script to help sort my downloads. Basically I have a downloads folder, and at the moment I have directory browsing enabled so that i can download files. What I want is...
0
by: bcannon | last post by:
At Guido's suggestion, a new mailing list has been created named Python-Ideas (http://mail.python.org/mailman/listinfo/python-ideas). This list is meant as a place for speculative, pie-in-the-sky...
3
by: Elmo Watson | last post by:
I've got a web page (VB.Net 2005) that takes in information, and submits it to a sql server 2000 database There is a 'Status' field - at that point, when the info is submitted, the status field...
8
by: =?Utf-8?B?UGF1bA==?= | last post by:
Hi for some reason in the code below even when the file exits the code below never executes int a = 1; does the path have to contain the entire physical path including the drive? string...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.