Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Database Design / May 2008

Tip: Looking for answers? Try searching our database.

How to track transit time for each step of workflow process?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
M. - 07 May 2008 22:10 GMT
Hi,

This question regards a problem that I ran into while designing a new Access
database for my company.

Question
Which solution works best for the problem defined below= Two solutions are
suggested, alternative solutions are welcomed. What are the advantages of
(not) using a linked list approach?

Situation
Our customers want to place an order by sending a document with the
necessary specifications of the order. Before execution of this order, it
needs to be checked and approved by several people. Sometimes, the document
is even sent back to the customer for revision if parts of the information
are unclear or missing for approval.

Required information
We want to keep track of the duration of the whole process from placement of
the order until final approval of the order. Therefore we want a monthly
overview of the average time that each stakeholder in the workflow requires
to check and approve his/her part.

Example of required information report

March 2008
50 orders received

Average approval time in days
Secretary 5
Operational manager 10
Finance 7
Management 2
Customer 3

Suggested Table design

Table Orders
Order_ID (PK)
Customer_ID (Ref Key to Customers table)
Etc

Table Groups (contains customer, secretary, operational manager, finance,
etc.)
Group_ID (PK)
GroupName

Table Status (contains approved, revision, questions, etc.)
Status_ID
StatusName

Table Orders_Approval_Tracking
Order_ID (ref key to orders table)
TrackingNr (starts from 0,1,2,3 etc. voor each Order_ID approval tracking
record)
Group_ID
Date
Status_ID
Etc.

In this way, I could design a query that joins sequencal records (= approval
steps) based on difference in date if I could secure that records sorted by
date receive constant increasing numbers like 0,1,2,3, etc..

Example
record 1 (order_ID =1; TrackingNr = 0) joined with
record 2 (order_ID =1; TrackingNr = 1)
The group defined in record 1 took ** days to finish approval

Alternative would be to use a linked list, like this:

Table Orders_Approval_Tracking
OAT_ID (Primary Key)
Order_ID
Previous_OAT_ID (referencing to previous tracking record for same order_ID)
Group_ID
Date
Status_ID
Etc.

In this way, I could design a query that JOINS each approval tracking record
R1(except the first one) with its previous record R2 ON
R1.Order_ID=R2.Order_ID AND R1.Previous_OAT_ID = R2.OAT_ID and again
calculate the difference in date as approval time Requirement.

Example
record 1 (order_ID =1; Previous_OAT_ID = 111) joined with
record 2 (order_ID =1; OAT_ID = 111)
The group defined in record 1 took ** days to finish approval

Question (repeated)
Which solution works best for the problem defined below= Two solutions are
suggested, alternative solutions are welcomed. What are the advantages of
(not) using a linked list approach?

I hope anybody has experience with these kind of workflow information needs
and can give me useful feedback on the best approach to tackle this problem.

Best regards and many thanks,

M.
Evi - 22 May 2008 19:38 GMT
What about using the first design but adding an Enddate field to
TableApprovementTracking and calling the first field StartDate (don't call
it Date, that's a Reserved word) so that you can record when the order
arrives at and when it leaves a group.
If the item goes back to the group later, that's OK, you can still add up
the total days of involvement. Or what about letting the StartDate and
EndDate record both date and time  in case the item goes from one group to
another within a day and then calculate the hours it spends with each group,
rather than the days. You can always round the total down to days when you
calculate.

Efi

> Hi,
>
[quoted text clipped - 97 lines]
>
> M.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.