Domino 9 und frühere Versionen > ND7: Entwicklung

Alle Dokumente in der Datenbank aktuallsieren als Agent

<< < (3/3)

Klaas:
Also das Feld ist ein String.
Dadrin wird der Status sozusagen Kodiert.
-1 für muss geprüft werden.
-2 für muss freigegeben werden.
-3 für ist freigegeben.
-4 für muss geändert werden.

Im Grunde ist es also immer eine Zahl. Die aber im Moment als String gespeichert wird.

koehlerbv:

--- Zitat von: Klaas am 13.08.10 - 11:15:29 ---Im Grunde ist es also immer eine Zahl.
--- Ende Zitat ---

Nein - es ist eben keine Zahl, sondern ein String! Keyword aliases sind immer Strings.
Der bisherige Code muss also noch dahingehend korrigiert werden.

Bernhard

Klaas:
Achso...ja das habe ich gemacht.
Grade kürze ich alle Agenten von mir.... wie zum beispeil den hier:

Vorher:

--- Zitat ---Sub Initialize
   Dim gSession                      As New NotesSession
   Dim view                        As NotesView
   Dim docA                        As NotesDocument
   Dim docVater                     As NotesDocument
   Dim currentDB                      As NotesDatabase
   Dim mailDoc                      As NotesDocument
   Dim mailPerson                  As String
   Dim Dummy1                     As Variant
   Dim Dummy2                     As Variant
   Dim Dummy3                     As Variant
   Dim Dummy4                     As Variant
   Dim mailBetreff2                  As String
   Dim rtItem                      As NotesRichTextItem
   Dim tmpForm                     As String
   Const Ansicht1                     ="AdminGeprüft"
   Const mailName                  ="ExaminePersonAW"
   Const mailBetreff1                  ="Sie müssen das Dokument: "
   Const mailBetreff3                  =" noch prüfen."
   Const mailInhalt1                  ="Zu diesem Dokument wurden sie als Prüfer ermittelt."
   Const mailInhalt2                  ="Link zum Dokument"
   
   Set gSession                      = New NotesSession
   Set currentDB                     = gSession.CurrentDatabase
   Set view                         = currentDB.GetView( Ansicht1 )
   Set docA                         = view.GetFirstDocument
   
   While Not docA Is Nothing
      Dummy1                     = docA.GetItemValue( "Form")
      tmpForm                     = Dummy1(0)
      If tmpForm = "NewRevi" Or tmpForm = "NeuesFormular" Then
         
      Else
         Goto Ende
      End If
      Dummy1                     = docA.GetItemValue( mailName )
      mailPerson                  = Dummy1(0)
      Dummy1                     = docA.GetItemValue("ISONameAW")
      mailBetreff2                  = Cstr(Dummy1(0))
      Set mailDoc                   = currentDB.CreateDocument
      Call mailDoc.ReplaceItemValue ( "Form", "Memo")
      Call mailDoc.ReplaceItemValue ("SendTo", mailPerson)
      Call mailDoc.ReplaceItemValue ("Subject", mailBetreff1+mailBetreff2+mailBetreff3)
      Set rtItem = mailDoc.CreateRichTextItem ("Body")
      Call rtItem.AppendText ( mailInhalt1 )
      Call rtItem.AddNewline(1, True)   
      Call rtItem.AddNewline(1, True)
      Call rtItem.AppendDocLink( docA, mailInhalt2)
      Call rtItem.AppendText ( mailInhalt2 )
      If mailPerson<>"" Then   
         Call mailDoc.Send (True)
      End If
      Set docA                     =view.GetNextDocument( docA )
Ende:
   Wend
End Sub
--- Ende Zitat ---

Nachher:

--- Zitat ---Dim gSession                   As New NotesSession
   Dim view                        As NotesView
   Dim docA                        As NotesDocument
   Dim docVater                     As NotesDocument
   Dim currentDB                      As NotesDatabase
   Dim mailDoc                      As NotesDocument
   Dim rtItem                      As NotesRichTextItem
   Const Ansicht1                     ="AdminGeprüft"
   Const mailName                  ="ExaminePersonAW"
   Const mailBetreff1                  ="Sie müssen das Dokument: "
   Const mailBetreff3                  =" noch prüfen."
   Const mailInhalt1                  ="Zu diesem Dokument wurden sie als Prüfer ermittelt."
   Const mailInhalt2                  ="Link zum Dokument"
   
   Set gSession                      = New NotesSession
   Set currentDB                     = gSession.CurrentDatabase
   Set view                         = currentDB.GetView( Ansicht1 )
   Set docA                         = view.GetFirstDocument
   
   While Not docA Is Nothing
      If docA.GetItemValue( "Form")(0) = "NewRevi" Or docA.GetItemValue( "Form")(0) = "NeuesFormular" Then
         Set mailDoc                = currentDB.CreateDocument
         Call mailDoc.ReplaceItemValue ( "Form", "Memo")
         Call mailDoc.ReplaceItemValue ("SendTo", docA.GetItemValue( mailName )(0))
         Call mailDoc.ReplaceItemValue ("Subject", mailBetreff1+docA.GetItemValue("ISONameAW")(0)+mailBetreff3)
         Set rtItem = mailDoc.CreateRichTextItem ("Body")
         Call rtItem.AppendText ( mailInhalt1 )
         Call rtItem.AddNewline(1, True)   
         Call rtItem.AddNewline(1, True)
         Call rtItem.AppendDocLink( docA, mailInhalt2)
         Call rtItem.AppendText ( mailInhalt2 )
         Call mailDoc.Send (True)
         Set docA                  =view.GetNextDocument( docA )
      End If
   Wend
--- Ende Zitat ---

koehlerbv:
Da kann noch die Deklaration von docVater heraus,, das Set gSession = ist überflüssig, und die "+" sind keine geeigneten String-Verknüpfer, statt dessen ist "&" zu verwenden.

HTH,
Bernhard

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln