Hi,
I have 2 problems
1) I have the following code which creates documents by going through 2 views, getting certain field values and
then create some documents
But as you can see below..my code seems very repetitive, is their an easier way of putting my code so that it can
be easily understood
2) and the part where it reads:
While Not (doc Is Nothing)
'SySDets Doc Refresh with environment variable+++++++++++++
currDivTeam$ = doc.divname(0)
Call session.SetEnvironmentVar( "ESMCurrDivTeam", currDivTeam )
Call session.SetEnvironmentVar( "ESMSite", doc.DivACPOSite(0) )
Call workspace.EditDocument(True, SysDetsDoc)
Set sysuidoc = workspace.CurrentDocument
Set sysdetsdoc = sysuidoc.Document
Call sysuidoc.Refresh
sysuidoc.save
Call sysuidoc.Close
Call sysdetsdoc.Save( True, True )
'SySDets Doc Refresh with environment variable+++++++++++++
is causing me problems in that when the agent finishes
many sysdetsdocs start appearing on the tabs under the smarticons pane..what am i doing wrong..
i have to open sysdetsdoc...so that some fields can be refreshed...as my agent then uses these updated fields
but i thought by closing them they wont apppear on the tab.
I guess by putting the above code within the while loop is not a good idea (as it goes through the loop..its
opening the sysdetsdoc and then closing it and doing the same over and over again) but what other solution can i use.
Thanks in advance
My full code:
Sub Initialize
Dim session As New notessession
Set Agent = session.currentAgent
AgentName = Agent.Name
''Print starting Agent to NotesLog
Print "Starting Process All Staff Agent at: " & Str$(Now())
Set UnicornDb = session.currentdatabase
server = Unicorndb.server
Set view = UnicornDb.getview("DivisionsV")
Set SysDetsView = UnicornDb.GetView("SysDetsV")
Set SysDetsDoc = SysDetsView.GetDocumentByKey("A",True)
Call TeamviewChangeDoc
End Sub
++++++++++++++++++++++++++++++++
Sub TeamViewChangeDoc
Dim session As New notessession
Dim workspace As New NotesUIWorkspace
Dim sysuidoc2 As NotesUIDocument
On Error Goto ProcessError
Set UnicornDb = session.currentdatabase
server = Unicorndb.server
Set view2 = UnicornDb.getview("AllLiveTeamsByDivV")
Set doc2 = view2.getfirstdocument
count2 = 0
While Not (doc2 Is Nothing)
'SySDets Doc Refresh with environment variable+++++++++++++
var3 = Evaluate({@Right(TeaDivision;".")}, doc2)
currDivTeam$ = var3(0)
Call session.SetEnvironmentVar( "ESMCurrDivTeam", currDivTeam )
Call session.SetEnvironmentVar( "ESMSite", doc2.DivACPOSite(0) )
Call workspace.EditDocument(True, SysDetsDoc)
Set sysuidoc2 = workspace.CurrentDocument
Set sysdetsdoc = sysuidoc2.Document
Call sysuidoc2.Refresh
sysuidoc2.save
Call sysuidoc2.Close
Call sysdetsdoc.Save( True, True )
'SySDets Doc Refresh with environment variable+++++++++++++
'+++++++++++++
Set item1 = doc2.GetFirstItem( "DivACPO" )
GroupName2 = SysDetsDoc.SysACO
For y = 0 To Ubound(doc2.DivACPO)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivACPO(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item2 = doc2.GetFirstItem( "DivACPOSec" )
GroupName2 = SysDetsDoc.SysACOPA
For y = 0 To Ubound(doc2.DivACPOSec)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivACPOSec(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item3 = doc2.GetFirstItem( "DivAM" )
GroupName2 = SysDetsDoc.SysAM
For y = 0 To Ubound(doc2.DivAM)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivAM(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item4 = doc2.GetFirstItem( "DivAAM" )
GroupName2 = SysDetsDoc.SysAAM
For y = 0 To Ubound(doc2.DivAAM)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivAAM(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item5 = doc2.GetFirstItem( "DivSPO" )
GroupName2 = SysDetsDoc.SysSPO
For y = 0 To Ubound(doc2.DivSPO)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivSPO(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item6 = doc2.GetFirstItem( "DivPO" )
GroupName2 = SysDetsDoc.SysPO
For y = 0 To Ubound(doc2.DivPO)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivPO(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item7 = doc2.GetFirstItem( "DivPSO" )
GroupName2 = SysDetsDoc.SysPSO
For y = 0 To Ubound(doc2.DivPSO)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivPSO(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set item8 = doc2.GetFirstItem( "DivTPO" )
GroupName2 = SysDetsDoc.SysTPO
For y = 0 To Ubound(doc2.DivTPO)
For x = 0 To Ubound(GroupName2)
Set ChangeCDoc2 = UnicornDb.createdocument
ChangeCDoc2.Form = "ChangeControlD"
ChangeCDoc2.ChangeType = "Add"
ChangeCDoc2.ChangeStaff = doc2.DivTPO(y)
ChangeCDoc2.ChangeMailGroup = GroupName2(x)
ChangeCDoc2.ChangeDraft = "Yes"
Call ChangeCDoc2.Save(True,True)
Next
Next
'+++++++++++++++
Set doc2 = view2.getnextdocument(doc2)
count2 = count2 + 1
Wend
Print "No of Team Docs Processed = " & Cstr(count2)
Exit Sub
ProcessError:
' Print message to NotesLog containing error info...
Print "### WMPA Exception Event ###"
Print "### Agent: " & AgentName & " Error Encountered ###"
Print "### Error: " & Str(Err) & " - " & Error$ & " ###"
Print "### Db: " & UnicornDb.FilePath & " ###"
Print "### < " & Str(Erl) " > ###"
Exit Sub
End Sub

Agent - Doc opens several tabs and ... (Nadeem Shaikh 28.Apr.04)
. . 