Domino 9 und frühere Versionen > ND7: Entwicklung

Beseitigung - ID des Dokumets, das den Fehler verursacht hat

<< < (2/3) > >>

nsm:
Hallo!

Der Agent soll manuell gestartet werden.

nsm:
Hallo!

Wie siehts damit aus?

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim dc As NotesDocumentCollection
  Dim doc As NotesDocument
  Set db = session.CurrentDatabase
  Set dc = db.AllDocuments
  Set doc = dc.GetFirstDocument()

  While Not(doc Is Nothing)
    Call Doc.ReplaceItemValue("fld_bearbeitet","JA")   
    Call Doc.Save(True, False, False)
    Set doc = dc.GetNextDocument(doc)
  Wend

End Sub

Wenn ich das richtig verstehe, dann werden hier einfach alle Docs mit einem Feld versehen und dann gespeichert.

oder?
mest

Peter Klett:
Wenn die Ursache für den Fehler ist, dass das Feld "fld_bearbeitet" nicht "JA" enthält, ist das schon der richtige Ansatz.

Allerdings speicherst Du alle Dokumente erneut, unabhängig davon, ob das Feld korrekt gesetzt war oder nicht. Das solltest Du nicht tun.

Daher würde ich anstelle von Set dc = db.AllDocuments

Set dc = db.Search (|fldbearbeitet != "JA"|, Nothing, 0)

verwenden.

Die in rot dargestellte Selektionsformel würde ich dann noch um weitere Eigenschaften (wie Maskennamen usw.) erweitern, da es sicherlich andere Dokumente ohne dieses Feld in der DB geben darf (Kalendereinträge u.a.).

nsm:
Hallo!

@Peter Klett
Ok das habe ich verstanden.

Da komt schon die nächste Frage.
Wie kann ich die selectierten Doc´s vorm speichern neu berechnen lassen?
Ich will nur sichergehen, daß auch alle Felder aktuell sind.

Danke
mest

Peter Klett:
Du kannst ein NotesDocument.ComputeWithForm benutzen, das muss aber nicht alles erledigen. Scripte in PostOpen, Querysave usw. werden z.B. nicht ausgeführt.

Wenn es nur ein paar Dokumente sind, kannst Du die auch mit workspace.EditDocument, uidoc.Save und uidoc.Close abarbeiten, aber wenn das zuviele sind, fliegt Dir dabei gerne der Client um die Ohren.

Du solltest auf jeden Fall an der Ursache arbeiten. Hinterher die Scherben wegräumen ist auf Dauer der falsche Ansatz.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln