例: UnprocessedDocuments property

  1. 次のエージェントスクリプトを使用すると、[Requisition] ビューで現在選択されている文書を処理して、一度に複数の要求を承認できます。UnprocessedDocuments はビューで現在選択されている文書を返します。スクリプトは各文書を次々と処理します。また、Approver アイテムに現在のユーザー名が含まれている場合、スクリプトは Approved アイテムに「Yes」を入力します。
    Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim doc As NotesDocument
    Set db = session.CurrentDatabase
    Set collection = db.UnprocessedDocuments
    Set doc = collection.GetFirstDocument()
    While Not(doc Is Nothing)
      Set item = doc.GetFirstItem( "Approver" )
      If item.Contains( session.UserName ) Then
      doc.Approved = "Yes"
      Call doc.Save( False, True )
      End If
      Set doc = collection.GetNextDocument(doc)
    Wend
    End Sub
  2. 次のエージェントスクリプトはすべての新規作成および更新された文書で実行されます。スクリプトは処理対象とする各文書の Status アイテムを変更します。
    • エージェントビルダーで指定された検索条件がエージェントに定義されておらず、エージェントの最初の実行日時が 1995 年 10 月 17 日である場合、UnprocessedDocuments はデータベースのすべての文書を返します。スクリプトは「Processed by agent on 10/17/95」を返される各文書の Status アイテムに入力し、文書を保存して処理済みのマークを付けます。エージェントが翌日もう一度実行されるときに、5 つの文書が 17 日以降に作成または変更されている場合、UnprocessedDocuments はこの 5 つの文書だけを返します。また、スクリプトは「Processed by agent on 10/18/95」を返される各文書の Status アイテムに入力します。5 つ文書だけが対象となるのは、これ以外のすべての文書に処理済みのマークが付けられているからです。エージェントが翌日もう一度実行されるときに、1 つの文書が 18 日以降に作成されている場合、UnprocessedDocuments はその文書を返します。
    • エージェントビルダーで指定された検索条件がエージェントに定義されていて、エージェントの最初の実行日時が 1995 年 10 月 17 日である場合、UnprocessedDocuments は、検索条件を満たすデータベースのすべての文書を返します。例えば、エージェントは [Subject] フィールドに単語「Pablo」を含むすべての文書を返します。エージェントが翌日もう一度実行されるときに、5 つの文書が 17 日以降に作成か変更され、そのうちの 2 つの文書だけが単語「Pablo」を [Subject] に含むとき、UnprocessedDocuments はこの 2 つの文書を返します。エージェントが翌日もう一度実行されるときに、1 つの文書が 18 日以降に作成されているが [Subject] に単語「Pablo」を含まない場合、UnprocessedDocuments は文書を含まない NotesDocumentCollection を返します。
      Sub Initialize
        Dim session As New NotesSession
        Dim db As NotesDatabase
        Dim collection As NotesDocumentCollection
        Dim dateTime As NotesDateTime
        Dim doc As NotesDocument
        Set db = session.CurrentDatabase
        Set collection = db.UnprocessedDocuments
        Set dateTime = New NotesDateTime( "Today" )
        Set doc = collection.GetFirstDocument()
        While Not(doc Is Nothing)
          doc.Status = "Processed by agent on "_
          & dateTime.LocalTime
          Call doc.Save( True, True )
          Call session.UpdateProcessedDoc( doc )
          Set doc = collection.GetNextDocument(doc)
        Wend
      End Sub
  3. 次のエージェントスクリプトはすべての未読文書を対象に実行されます。また、スクリプトは未読文書をフォルダに入れます。
    • エージェントが検索条件を含まないとき、UnprocessedDocuments はエージェントが実行されるたびに、データベースのすべての未読文書を返します。エージェントがすでにいくつかの未読文書で実行済みの場合でも、同じように文書を返します。
    • エージェントが検索条件を含むとき、UnprocessedDocuments は検索条件を満たすデータベースのすべての未読文書を返します。エージェントがすでにいくつかの未読文書で実行済みの場合でも、同じように文書を返します。
      Sub Initialize
        Dim session As New NotesSession
        Dim db As NotesDatabase
        Dim collection As NotesDocumentCollection
        Dim doc As NotesDocument    
        Set db = session.CurrentDatabase
        Set collection = db.UnprocessedDocuments
        Set doc = collection.GetFirstDocument()
        While Not(doc Is Nothing)
          Call doc.PutInFolder _
          ( "Stop dreaming! Read these documents!",True )
          Set doc = collection.GetNextDocument(doc)
        Wend
      End Sub