Domino 9 und frühere Versionen > ND7: Entwicklung

Alle Dokumente in der Datenbank aktuallsieren als Agent

(1/3) > >>

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