Domino 9 und frühere Versionen > ND7: Entwicklung
Alle Dokumente in der Datenbank aktuallsieren als Agent
Klaas:
Hallo,
ich habe eine Datenbank für das Qualitätsmanagement entwickelt.
Im Hauptdok. gibt es ein Statusfeld (Aktiv | 1,Gelöscht| 2,Entwurf | 3).
Zum Hauptdok. gibt es Antwortdok.. Hier müssen Verantwortliche den aktuellen Revisionsstand
freigeben.
Wenn dieses Antwortdok. freigegeben ist, dann soll der Status im Hauptdok. auf Aktiv|1 gesetzt werden.
Wenn man nun das Antwortdok. Freigegeben hat und ins Hauptdok. geht und es aktuallisiert, dann funktioniert auch alles.
Deshalb meine Frage:
"Gibt es einen @Befehl mit dem ich mittels Agent alle Dokumente in der Datenbank regelmäßig aktualliesieren kann?"
"Oder gibt es eine viel Bessere Lösung/Idee?"
"Oder kann ich mir beim Speichern des Antwortdok. irgendwie das Hauptdok. greifen und aktualliesieren?"
ich hoffe Ihr seit nicht sauer weil ich sone PillePalle Frage stelle
Vielen Dank
Klaas
Driri:
Alle Dokumente aktualisieren, weil sich evtl. ein Antwortdokument geändert hat, halte ich für den schlechtesten Weg. Im schlimmsten Fall aktualisiert Du 1000 Dokumente, obwohl eigentlich gar keins aktualisiert werden müßte.
Die ideale Lösung wäre, auf die Änderung im Antwortdokument gezielt zu reagieren. Da wirst Du vermutlich mit Formelsprache aber nicht auskommen, sondern auf LotusScript zurückgreifen müssen.
Über das Antwortdokument kommst Du direkt an das zugehörige Hauptdokument und kannst dann dort einen Wert setzen.
Schau Dir zu dem Thema generell auch mal den BestPractice-Artikel hier im Forum an.
koehlerbv:
Ingo, hier würde es sogar die Formelsprache tun. Klaas sollte sich mal @SetDocField anschauen.
Bernhard
Klaas:
Hm.
Ja damit müsste es gehen. Ich werde mal bissel weiter baun.
Klaas:
Ich habe das jetzt mal sagen wir gebaut. Ich bin noch nicht so erfahren im Script....
--- Zitat ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument 'Aktuelles Doc ( AntwortDoc )
Dim Vdoc As NotesDocument 'Hauptdokument des AntwortDocs
Dim item As NotesItem
Dim Dummy As Variant
Dim DummyString As String
Dim KGStatus As String
Dim VGStatus As String
Dim UnID As String
Set db = session.CurrentDatabase
Set doc = Source.Document 'UIDoc zu Backend-doc
UnID = doc.ParentDocumentUNID
Set Vdoc = db.GetDocumentByUNID(UnID) 'Vdoc wird zum Vaterdokument
Dummy = doc.GetItemValue("GesamtStatus")
KGStatus = Dummy(0)
If KGStatus <>4 Then
Goto Ende
End If
Dummy =""
Dummy = vdoc.GetItemValue("DocStatus3")
DummyString = Dummy(0)
If DummyString <>"" Then
VGStatus = "3"
Else
Goto Ende
End If
If KGStatus ="4" And VGStatus ="3" Then
Set item = vdoc.ReplaceItemValue("DocStatus1","1")
Set item = vdoc.ReplaceItemValue("DocStatus2","")
Set item = vdoc.ReplaceItemValue("DocStatus3","")
End If
Ende:
Call doc.Save(False, False )
Call Vdoc.Save(False, False )
End Sub
--- Ende Zitat ---
Das Läuft jetzt. Gibts da noch was was man besser machen könnte?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln