This agent increment elapsed business days without company holidays counted in. The formulae is simple and you can plug n play right away. Just remember you need a fields such RecvDate, HolidayCounter and Elapsed Days in the main form. And if your company does have db which has a listed holidays values in a document the below agent is good to go right away. Also, you can create a field the same document which will store company holidays dates and then you match with this dates field. Have Fun!!!!
SELECT Form = "Form" & @Contains(Status ; "Opened" : "Pending");
FIELD RecvDate:=RecvDate;
FIELD HolidayCounter:=@If(!@IsAvailable(HolidayCounter);0;HolidayCounter);
tmp:=HolidayCounter;
tem:=tmp +1;
StartDate:=RecvDate;
EndDate:=@Date(@Today);
ClassCache := "Notes" : "NoCache";
ServerDatabase := "NJSERVER1//SERVER//Lotus":"NJ\CASE.NSF" ;
View := "LU_Holidays";
Key := "Holiday List";
Column := 2;
REM;
List := (@DbLookup(ClassCache; ServerDatabase ; View; Key; Column));
temp1:=@Date(@Today);
@If(@IsMember(@Text(temp1);List);@SetField("HolidayCounter"; tem);tmp);
t1:=@If(@IsMember(@Text(temp1);List);@Return("");tmp);
diffDays := (EndDate - StartDate) / 86400;
strtDay := @Modulo(@Weekday(StartDate); 7);
endDay := @Modulo(@Weekday(EndDate); 7);
weekdays := (diffDays - endDay + strtDay - 7) * 5 /
7 - @Max(-2; -strtDay) - @Min(1; endDay) + 5 - strtDay + endDay - t1;
@SetField("ElapsedDays";weekdays)
This was first published in November 2000