[AccessD] Staging/Queueing Ideas

David McAfee dmcafee at pacbell.net
Fri Nov 4 12:05:09 CST 2005


I've built several of these systems. The last one that I built has been the
easiest to maintain. It also allows growth (what if a new step/process is
created?).

I take it that you have an RGA header and detail table. The detail table is
all the information related to the parts/items themselves. The header table
is everything related to the RGA itself (bill to, ship to, RGA#). I tend to
put in entryDate (default = now() )and entryBy fields into just about every
table.

I have codes set for each stage of the way:
	When the call is being entered, the code is considered a failure code:
		RSU - Returned status unknown
		MLF - Unit malfunction
		RPM - Returned due to missing part
		USE - User caused fault
	When the unit is received:
		DMG - Received damaged
		RAE - Received as expected
		SEE - See notes
	When the unit is in disposition:
		RTV - Return to vendor
		CNR - Could not repeat problem
		RBD - Rebuild
		SEE - See Notes
	When sent to accounting:
		WAR - Warranty
		NOC - No Credit
		OOW - Out of warranty

I have a table (tblRGAActionTypes):
RGAACtionID (AN PK)
RGAACtion (text 20)
entryDate (datetime - Now() )
entryUserID (integer)

This table simply has my four steps as records: Entry, Receive, Disposition,
Closed

I join that table to another table (one to many) called tblRGAActionCodes:
RGAActionCodeID (AN PK)
RGAActionID (Integer FK)
ActionCode (Text 3)
ActionDescription (Text 50)
entryDate (datetime - Now() )
entryUserID (integer)

A final table , a junction table is created, which links tblRGAHeader and
tblRGAActionCodes with a many to many relationship, I call it
tblRGAHeaderActionJunct :
RGAHeaderActionJunctID (AN PK)
RGAid (Integer FK)
ActionNotes (Memo)
RGAActionCodeID (Integer FK)
entryDate (datetime - Now() )
entryUserID (integer)

I have one form for all of these steps. I have a tab control which has 3
tabs, one for all of the steps, plus two additional tabs. One for
replacement parts used to repair the item and another for the history of the
RGA. I pass a code to the form as an openarg and call a function on the
forms load event which formats the tab's controls for the step that it is
being called for.  so for instance, if I open the form with a 1 (entry mode)
my combo box's label displays the text "Failure Type" and the combo box's
rowsource is:
	SELECT
		RGAActionCodeID,
		ActionCode,
		ActionDesc
	FROM tblRGAActionCodes
	WHERE RGAActionID = Forms!frmRGA!txtformMode

The "Notes" box is there for them to type a detailed description of the step
(if needed) then a command button simply inserts the data into the
appropriate tables.

The History tab is easy, since this is a self auditing design. I have a list
box which simply selects from the tables:

SELECT
	P.MocSN AS UnitID,
	A.ActionCode AS Occurrence,
	H.RGAID AS RGA,
	HAJ.RGAActionCodeID AS Code,
	HAJ.ActionNotes AS Notes,
	HAJ.EntryDate AS [Date],
	U.FullName AS [User],
	HAJ.RGAHeaderActionID
FROM
	dbo.tblRGAHeader AS H
	INNER JOIN dbo.tblRGAHeaderActionJunct AS HAJ
		ON H.RGAID = HAJ.RGAID
	INNER JOIN dbo.tblProduct AS P
		ON H.ProductID = P.ProductID
	INNER JOIN dbo.tblRGAactionCodes AS A
		ON HAJ.RGAActionCodeID = A.RGAActionCodeID
	INNER JOIN dbo.tblRGAactionTypes AS acT
		ON A.RGAActionID = acT.RGAActionID
	LEFT OUTER JOIN dbo.tbl_sysUsers AS U
		ON HAJ.EntryUserID = U.UserID
WHERE H.RGAID = Forms!frmRGA!txtRGAnum
ORDER BY HAJ.EntryDate ASC

I have some safeguards built into the main menu buttons which check the max
status of a given RGA, so if someone tries to open an RGA in the incorrect
order, they are not allowed. This is a business rule that states the RGA
must process through all steps.

Let me know if you need any further help with this.

David McAfee

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Lavsa, Rich
Sent: Friday, November 04, 2005 7:15 AM
To: Access Developers discussion and problem solving
Subject: [AccessD] Staging/Queueing Ideas


 Hello all,

I have been throwing around the notion of building some sort of queuing
ability into an application I built.

It is an RGA (Return Goods Application).  This application tracks items
returned to the manufacturing plant, for whatever reason.  Through this
process, the RGA can be initiated by Customer service or Shipping.
Shipping will only initiate an RGA if material shows up on the dock
without any prior notification.

Anyway, the Flow is as follows..
First Customer Service gets a call from customer to return material.
They enter this request into the system, and generate a number.  This
information is then Faxed or emailed to the customer.
Second they send this material to our Warehouse (Shipping).  Shipping
then verifies what was sent back, how much was good, scrapped, and
re-inventoried.
Third Manager of Shipping reviews the returns to validate any wrong
doings by our customers (tries to avoid larger customers getting free
material) and gives their approval.
Fourth, goes back to Customer Service who then requests a credit to
customer.
Fifth, goes to accounting where another quick review takes place, and
the actual credit is applied.

So I have 5 Stages/queues.  Currently there is no way in the application
for Shipping to know what to expect, or for Customer Service to know
what shipping has passed on to Manager of Shipping for approval, etc..
I did attempt to put a RoutingStatus field in there, but this gets
filled in the first time because it's required, then after that it is
over looked..

So what I am looking for is an idea or 2 that might be effective in
producing some sort of staging or queuing ability within this
application.  I do not believe a single field with "who's next" is
adequate.  I have thought about having a date at each stage to be filled
in at the time they completed their part, but does that seem overkill?
Am I making this part way too complicated?

Thanks in advance for any ideas,

Rich
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list