Sunday, April 29, 2012

MailFile Creation

%REM
    Agent PersonDoc
    Created Apr 25, 2012 by Vijayasree Lakkala/IT/polarisFT
    Description: Comments for Agent
%END REM
Option Public
Option Declare

Sub Initialize
    Dim session As new NotesSession
    Dim curdb As NotesDatabase
    Dim inputvw As NotesView
    Dim inputdoc As NotesDocument
    Dim user As String
    Dim staffid As String
    Dim personDb As NotesDatabase
    Dim template As New NotesDatabase( "","mail85.ntf" )
    Dim acl As NotesACL
    Dim aclentry As NotesACLEntry
   
    Dim replica As NotesDatabase
    Dim cluster As NotesDatabase
   
    Dim LogDoc As NotesDocument
    Dim ActivityLogRTItem As NotesRichTextItem
    Dim n
    n=0
    Set curdb=session.Currentdatabase
    Set LogDoc=curdb.CreateDocument
    LogDoc.Form="LogForm"   
    LogDoc.Server=curdb.Server
    LogDoc.StartTime=Now
    Set ActivityLogRTItem = New NotesRichTextItem( LogDoc, "Rtxtlogactivity" )
    Call ActivityLogRTItem.AppendText( Now+ ": "&"Agent Started")
    Call ActivityLogRTItem.AddNewLine( 1)
   
    Set inputvw=curdb.Getview("InputPrf")
    Set inputdoc=inputvw.Getfirstdocument()
   
    While not inputdoc Is Nothing
        Dim temp As NotesDocument
        Set temp=inputvw.Getnextdocument(inputdoc)
           
    'Create in homeserver
        Dim tempuser As String
        tempuser=inputdoc.username(0)
        user=StrLeft(tempuser,"/")
        staffid=inputdoc.staffid(0)
        Set personDb = template.CreateFromTemplate(inputdoc.homeserver(0),"mail\"+Trim(staffid)+".nsf", True )
        personDb.Title = user
       
        Dim caldoc As NotesDocument
        Set caldoc=personDb.Getprofiledocument("CalendarProfile")
        caldoc.Owner=tempuser
        Call caldoc.Save(True,False)
       
        Set acl=personDb.Acl
        Set aclentry=acl.Createaclentry(tempuser, ACLLEVEL_Editor)
        aclentry.Name=tempuser
        aclentry.Usertype=ACLTYPE_PERSON
        aclentry.Cancreatepersonalfolder=True
        aclentry.Cancreatesharedfolder=True
        Call acl.Save()
       
        Call ActivityLogRTItem.AppendText( Now+ ": "&  "  Mail File"+Trim(staffid)+".nsf Created in  :" + inputdoc.homeserver(0))
        Call ActivityLogRTItem.AddNewLine( 1)
   
    'Create replica copy
   
        Set replica = personDb.createreplica (inputdoc.replicaserver(0),"mail\"+Trim(staffid)+".nsf")
        replica.Title=user
       
        Dim rcaldoc As NotesDocument
        Set rcaldoc=replica.Getprofiledocument("CalendarProfile")
        rcaldoc.Owner=tempuser
        Call rcaldoc.Save(True,False)
       
        Call ActivityLogRTItem.AppendText( Now+ ": "&  "  Mail File"+Trim(staffid)+".nsf Created in  :" + inputdoc.replicaserver(0))
        Call ActivityLogRTItem.AddNewLine( 1)
   
    'Create Cluster copy
   
    %REM

        Set cluster=personDb.createreplica (inputdoc.drserver(0),"mail\"+Trim(staffid)+".nsf")
        cluster.Title=user
       
        Dim ccaldoc As NotesDocument
        Set ccaldoc=cluster.Getprofiledocument("CalendarProfile")
        ccaldoc.Owner=tempuser
        Call ccaldoc.Save(True,False)
       
        Call ActivityLogRTItem.AppendText( Now+ ": "&  "  Mail File"+Trim(staffid)+".nsf Created in  :" + inputdoc.drserver(0))
        Call ActivityLogRTItem.AddNewLine( 1)
    %END REM
        inputdoc.flag="Yes"
        Call inputdoc.Save(True,True)
       
        n=n+1
        Set inputdoc=temp
       
    Wend
   
    'set flag
   
   
    Print "Number of Mail Files creation completed " & n

    Call ActivityLogRTItem.AppendText( Now+ ": "&"Number Of User Creation:  "& n)
    Call ActivityLogRTItem.AddNewLine( 1)
    Call ActivityLogRTItem.AppendText( Now+ ": "&"Agent Ended")
    Call ActivityLogRTItem.AddNewLine( 1)
    Call LogDoc.Save(True,False)
   
End Sub

1 comment: