I agree with the other users in that using task sets and BAMs together
may solve your problem. We do something similar for setting up new
parts. Doc Control checks the parts out, purchasing sets up the
warehouse information, mfg sets of the operations, cost acct rolls
costs, etc. We created a task set to route the part and use a BAM for
notification. I also have an Access report that will print out the
current status of all the open Eng Workbench groups by the current task
owner.
Below is the code for the BAM. Although the BAM is buildiing
information for parts, you would have to do something similar to develop
information for the quote. The trigger for the BAM is the Task table,
Key1 field. I also agree with one of the users, if you go to the
trouble of implementing something like this, you have to have your users
respond in a timely manner otherwise the task just sits there (i.e. the
reason for the Access report).
/***********************************************************************
***
Description: This program sends part information to the Taskset
workforce
Created By:
Butch Menge
Revision History:
Initial revision
Vantage 6.1
-----------------
************************************************************************
***/
{ud/GlbAlert.i &TableName = "Task"}
DEFINE VARIABLE NewEmailBody AS CHARACTER NO-UNDO.
IF Task.RelatedToFile = "ECOGROUP" THEN DO:
ASSIGN NewEmailBody = "Group ID: " + Task.Key1 + "~n~n".
FOR EACH EcoRev WHERE EcoRev.GroupID = Task.Key1 no-lock:
ASSIGN NewEmailBody = NewEmailBody + "Part Num: " +
EcoRev.PartNum +
" " + EcoRev.PartDescription + " Type: ".
FIND Part WHERE Part.PartNum = EcoRev.PartNum no-lock.
ASSIGN NewEmailBody = NewEmailBody + Part.TypeCode + " IUM:
" + Part.IUM +
" StdMat: " + String(Part.StdMaterialCost) + " StdLab: "
+
String(Part.StdLaborCost) + " StdBurd: " +
string(Part.StdBurdenCost) +
" StdSubContCost: " + string(Part.StdSubContCost) + "
UnitPrice: " +
String(Part.UnitPrice) + " Warranty Code: " +
Part.WarrantyCode + "~n".
FOR EACH EcoMtl WHERE (EcoMtl.GroupID = Task.Key1) and
(EcoMtl.PartNum = EcoRev.PartNum) no-lock:
ASSIGN NewEmailBody = NewEmailBody + " Material: " +
EcoMtl.MtlPartNum +
" " + String(EcoMtl.QtyPer) + " Type: ".
FIND Part WHERE Part.PartNum = EcoMtl.MtlPartNum
no-lock.
ASSIGN NewEmailBody = NewEmailBody + Part.TypeCode + "
IUM: " + Part.IUM +
" StdMat: " + String(Part.StdMaterialCost) + "
StdLab: " +
String(Part.StdLaborCost) + " StdBurd: " +
string(Part.StdBurdenCost) +
" StdSubContCost: " + string(Part.StdSubContCost) +
" UnitPrice: " +
String(Part.UnitPrice) + " Warranty Code: " +
Part.WarrantyCode + "~n".
END.
FOR EACH EcoOpr WHERE (EcoOpr.GroupID = Task.Key1) and
(EcoOpr.PartNum = EcoRev.PartNum) no-lock:
ASSIGN NewEmailBody = NewEmailBody + " Operation: " +
EcoOpr.WCCode + ", " +
EcoOpr.OpCode + " " + STRING(EcoOpr.ProdStandard) +
" " + EcoOpr.StdFormat + "~n".
END.
END.
FIND EcoGroup WHERE EcoGroup.GroupID = Task.Key1 no-lock.
ASSIGN Email-Text = EcoGroup.CommentText + "~n~n" +
NewEmailBody.
FIND TaskSDtl WHERE (TaskSDtl.TaskID = Task.TaskID) and
(TaskSDtl.TaskSetSeq = Task.TaskSetSeq) no-lock.
FOR EACH SalesRep WHERE (SalesRep.RoleCode = TaskSDtl.RoleCode)
no-lock:
ASSIGN Email-To = Email-To + SalesRep.EmailAddress + "; ".
END.
ASSIGN Email-Subject = "Vantage Task: " + Task.TaskDescription.
END.
else Return "Cancel Send":U.
Return.
________________________________
From: vantage@yahoogroups.com [mailto:vantage@yahoogroups.com] On Behalf
Of Rhonda
Sent: Monday, January 28, 2008 6:03 PM
To: vantage@yahoogroups.com
Subject: [Vantage] Re: Alert question
We have tried using the tasks sets but again it does not do all the
notifying we need to do.
may solve your problem. We do something similar for setting up new
parts. Doc Control checks the parts out, purchasing sets up the
warehouse information, mfg sets of the operations, cost acct rolls
costs, etc. We created a task set to route the part and use a BAM for
notification. I also have an Access report that will print out the
current status of all the open Eng Workbench groups by the current task
owner.
Below is the code for the BAM. Although the BAM is buildiing
information for parts, you would have to do something similar to develop
information for the quote. The trigger for the BAM is the Task table,
Key1 field. I also agree with one of the users, if you go to the
trouble of implementing something like this, you have to have your users
respond in a timely manner otherwise the task just sits there (i.e. the
reason for the Access report).
/***********************************************************************
***
Description: This program sends part information to the Taskset
workforce
Created By:
Butch Menge
Revision History:
Initial revision
Vantage 6.1
-----------------
************************************************************************
***/
{ud/GlbAlert.i &TableName = "Task"}
DEFINE VARIABLE NewEmailBody AS CHARACTER NO-UNDO.
IF Task.RelatedToFile = "ECOGROUP" THEN DO:
ASSIGN NewEmailBody = "Group ID: " + Task.Key1 + "~n~n".
FOR EACH EcoRev WHERE EcoRev.GroupID = Task.Key1 no-lock:
ASSIGN NewEmailBody = NewEmailBody + "Part Num: " +
EcoRev.PartNum +
" " + EcoRev.PartDescription + " Type: ".
FIND Part WHERE Part.PartNum = EcoRev.PartNum no-lock.
ASSIGN NewEmailBody = NewEmailBody + Part.TypeCode + " IUM:
" + Part.IUM +
" StdMat: " + String(Part.StdMaterialCost) + " StdLab: "
+
String(Part.StdLaborCost) + " StdBurd: " +
string(Part.StdBurdenCost) +
" StdSubContCost: " + string(Part.StdSubContCost) + "
UnitPrice: " +
String(Part.UnitPrice) + " Warranty Code: " +
Part.WarrantyCode + "~n".
FOR EACH EcoMtl WHERE (EcoMtl.GroupID = Task.Key1) and
(EcoMtl.PartNum = EcoRev.PartNum) no-lock:
ASSIGN NewEmailBody = NewEmailBody + " Material: " +
EcoMtl.MtlPartNum +
" " + String(EcoMtl.QtyPer) + " Type: ".
FIND Part WHERE Part.PartNum = EcoMtl.MtlPartNum
no-lock.
ASSIGN NewEmailBody = NewEmailBody + Part.TypeCode + "
IUM: " + Part.IUM +
" StdMat: " + String(Part.StdMaterialCost) + "
StdLab: " +
String(Part.StdLaborCost) + " StdBurd: " +
string(Part.StdBurdenCost) +
" StdSubContCost: " + string(Part.StdSubContCost) +
" UnitPrice: " +
String(Part.UnitPrice) + " Warranty Code: " +
Part.WarrantyCode + "~n".
END.
FOR EACH EcoOpr WHERE (EcoOpr.GroupID = Task.Key1) and
(EcoOpr.PartNum = EcoRev.PartNum) no-lock:
ASSIGN NewEmailBody = NewEmailBody + " Operation: " +
EcoOpr.WCCode + ", " +
EcoOpr.OpCode + " " + STRING(EcoOpr.ProdStandard) +
" " + EcoOpr.StdFormat + "~n".
END.
END.
FIND EcoGroup WHERE EcoGroup.GroupID = Task.Key1 no-lock.
ASSIGN Email-Text = EcoGroup.CommentText + "~n~n" +
NewEmailBody.
FIND TaskSDtl WHERE (TaskSDtl.TaskID = Task.TaskID) and
(TaskSDtl.TaskSetSeq = Task.TaskSetSeq) no-lock.
FOR EACH SalesRep WHERE (SalesRep.RoleCode = TaskSDtl.RoleCode)
no-lock:
ASSIGN Email-To = Email-To + SalesRep.EmailAddress + "; ".
END.
ASSIGN Email-Subject = "Vantage Task: " + Task.TaskDescription.
END.
else Return "Cancel Send":U.
Return.
________________________________
From: vantage@yahoogroups.com [mailto:vantage@yahoogroups.com] On Behalf
Of Rhonda
Sent: Monday, January 28, 2008 6:03 PM
To: vantage@yahoogroups.com
Subject: [Vantage] Re: Alert question
We have tried using the tasks sets but again it does not do all the
notifying we need to do.
>it
> Since you're using quotes, have you considered using Task Sets? True,
> doesn't run via email but it was designed to do what you'redescribing.
>[Non-text portions of this message have been removed]
> Mark W.
>