- 次のスクリプトは文書の各作成者の名前を表示します。例えば、Ivan Ash が文書を作成して Kate Gaston が更新したとき、スクリプトは「Ivan Ash」と「Kate Gaston」を表示します。
Dim doc As NotesDocument
'...set value of doc...
Forall a In doc.Authors
Messagebox( a )
End Forall
- 次のスクリプトは文書が過去 7 日間に更新されたかどうかを調べます。更新されていないとき、スクリプトは督促メモを文書の作成者にメールで送信します。Send メソッドは文字列の配列を第 2 番目のパラメータとして受け取ります。このため、スクリプトは doc.Authors の値を直接 Send メソッドに与えます。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim newDoc As NotesDocument
Dim weekDateTime As NotesDateTime
Dim modifiedDateTime As NotesDateTime
Set db = session.CurrentDatabase
'...set value of doc...
Set weekDateTime = New NotesDateTime( "Today" )
Set modifiedDateTime = New NotesDateTime( "" )
Call weekDateTime.AdjustDay( -7 ) ' set to one week ago
modifiedDateTime.LSLocalTime = doc.LastModified
If weekDateTime.TimeDifference( modifiedDateTime ) > 0 Then
Set newDoc = New NotesDocument( db )
newDoc.Form = "Memo"
newDoc.Subject = _
"Reminder: please update your project plan"
Call newDoc.Send( False, doc.Authors )
End If
- データベースに [TeamLeaders] という新しいロールを追加して作成者のアクセスリストを作成して、[TeamLeaders] だけがプロジェクト計画の文書を作成できるようにしました。今までプロジェクト文書を作成、編集できたユーザー全員が引き続き作成、編集できるようにするには、次のようなスクリプトを作成し、既存のプロジェクト計画の文書の作成者全員に [TeamLeader] ロールを与えます。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim dateTime As New NotesDateTime( "12/01/94" )
Set db = session.CurrentDatabase
Set collection = db.FTSearch("Project Plan", 20)
Set acl = db.ACL
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Call enablePeople( acl, "Team Leader", doc.Authors )
Set doc = collection.GetNextDocument( doc )
Wend
Sub enablePeople( acl As NotesACL, role As String, _
names As Variant )
Dim entry As NotesACLEntry
Forall n In names
Set entry = acl.GetEntry( n )
If ( entry.Level = ACLLEVEL_NOACCESS ) Then
Set entry = New NotesACLEntry( acl, n, _
ACLLEVEL_AUTHOR )
Call acl.Save
End If
Call entry.EnableRole( role )
End Forall
Call acl.Save
End Sub