例: UnprocessedSearch method

  1. 次のビューアクションスクリプトはビューで現在選択されている文書で検索を行います。UnprocessedSearch はビューで現在選択されている文書で、1995 年 5 月 20 日以降に作成され、Subject アイテムに単語「botany」を含む文書を検索します。そして、検索で取得した文書をフォルダに入れます。
    Sub Initialize
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim dateTime As NotesDateTime
      Dim collection As NotesDocumentCollection
      Dim doc As NotesDocument
      Set db = session.CurrentDatabase
      Set dateTime = New NotesDateTime( "05/20/95" )
      Set collection = db.UnprocessedSearch _
      ( "@Contains( Subject; ""botany"" )", dateTime, 0 )
      Set doc = collection.GetFirstDocument()
      While Not(doc Is Nothing)
        Call doc.PutInFolder( "Botanist's Delight" )
        Set doc = collection.GetNextDocument(doc)
      Wend
    End Sub
  2. 次のエージェントスクリプトは、1995 年 5 月 20 日以降に新規作成または更新され、Subject アイテムに単語「botany」を含む文書を対象に実行されます。スクリプトは処理対象とする各文書の Status アイテムを変更します。
    • [エージェントのプロパティ] インフォボックスで指定された検索条件がエージェントに定義されておらず、エージェントの最初の実行日時が 1995 年 10 月 17 日である場合、UnprocessedSearch は 1995 年 5 月 20 日以降に作成され、Subject アイテムに単語「botany」を含むデータベースのすべての文書を返します。スクリプトは返された各文書の Status アイテムに「Processed by agent on 10/17/95」を入力し、処理済みのマークを付けて文書を保存します。エージェントが翌日もう一度実行されるときに、5 つの文書が 17 日以降に作成か変更されている場合、UnprocessedSearch はこの 5 つの文書だけを検索します。検索結果として、1995 年 5 月 20 日以降に作成され、さらに Subject アイテムに単語「botany」を含む文書を返します。他のすべての文書は処理済みのマークが付けられているため検索の対象外となります。スクリプトは返された各文書の Status アイテムに「Processed by agent on 10/18/95」を入力します。エージェントが翌日もう一度実行されるときに、1 つの文書が 18 日以降に作成されている場合、UnprocessedSearch は 1995 年 5 月 20 日以降に作成され Subject アイテムに単語「botany」を含む文書を返します。条件を満たす文書がないときは、文書を 1 つも含まない NotesDocumentCollection を返します。
    • [エージェントのプロパティ] インフォボックスで指定された検索条件がエージェントに定義されていて、エージェントの最初の実行日時が 1995 年 10 月 17 日である場合、UnprocessedSearch は、[エージェントのプロパティ] インフォボックスで指定された検索条件を満たし、1995 年 5 月 20 日以降に作成され、さらに Subject アイテムに単語「botany」を含むすべてのデータベース文書を返します。エージェントが翌日もう一度実行されるときに、5 つの文書が 17 日以降に作成か変更され、そのうちの 2 つの文書だけが [エージェントのプロパティ] インフォボックスで指定された検索条件を満たします。1995 年 5 月 20 日以降に作成され、さらに単語「botany」を含む場合、UnprocessedSearch はその 2 つの文書を返します。エージェントが翌日もう一度実行されるときに 1 つの文書が 18 日以降に作成されている場合、その文書が [エージェントのプロパティ] インフォボックスで指定された検索条件を満たさないか、5 月 20 日以前に作成されたか、Subject アイテムに単語「botany」を含まない場合、UnprocessedSearch は文書を含まない NotesDocumentCollection を返します。
      Sub Initialize
        Dim session As New NotesSession
        Dim db As NotesDatabase
        Dim dateTime As NotesDateTime
        Dim collection As NotesDocumentCollection
        Dim todayDateTime As NotesDateTime
        Dim doc As NotesDocument
        Set db = session.CurrentDatabase
        Set dateTime = New NotesDateTime( "05/20/95" )
        Set collection = db.UnprocessedSearch _
        ( "@Contains( Subject; ""Botany"" )", dateTime, 0 )
        Set doc = collection.GetFirstDocument()
        Set todayDateTime = New NotesDateTime( "Today" )
        While Not(doc Is Nothing)
          doc.Status = "Processed by agent on " & _
          todayDateTime.LocalTime
          Call doc.Save( True, True )
          Call session.UpdateProcessedDoc( doc )
          Set doc = collection.GetNextDocument(doc)
        Wend
      End Sub
  3. 次のエージェントスクリプトは 1996 年 1 月 20 日以降に作成され、Subject アイテムに単語「URGENT」を含むすべての未読文書を対象に実行されます。スクリプトの目的は、このような文書をフォルダに入れることです。
    • [エージェントのプロパティ] インフォボックスで指定された検索条件がエージェントに定義されていない場合、UnprocessedSearch は、1996 年 1 月 20 日以降に作成され、Subject アイテムに単語「URGENT」を含む、データベースのすべての未読文書を返します。エージェントがすでにいくつかの未読文書で実行済みの場合でも、UnprocessedSearch はこのような文書を返します。
    • [エージェントのプロパティ] インフォボックスで指定された検索条件がエージェントに定義されている場合、UnprocessedSearch は、指定された検索条件を満たし、1996 年 1 月 20 日以降に作成され、単語「URGENT」を含む、データベースのすべての文書を返します。エージェントがすでにいくつかの未読文書で実行済みの場合でも UnprocessedSearch はこのような文書を返します。
      Sub Initialize
        Dim session As New NotesSession
        Dim db As NotesDatabase
        Dim dateTime As NotesDateTime
        Dim collection As NotesDocumentCollection
        Dim doc As NotesDocument    
        Set db = session.CurrentDatabase
        Set dateTime = New NotesDateTime( "01/20/96" )
        Set collection = db.UnprocessedSearch _
        ( "@Contains( Subject; ""URGENT"" )", dateTime, 0 )
        Set doc = collection.GetFirstDocument()
        While Not(doc Is Nothing)
          Call doc.PutInFolder _
          ( "Stop dreaming! Read these documents!" )
          Set doc = collection.GetNextDocument(doc)
        Wend
      End Sub