Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Nick am 10.07.03 - 11:30:00

Titel: Dokument kopieren, Bearbeiten, Original ersetzen
Beitrag von: Nick am 10.07.03 - 11:30:00
Hallo Zusammen,

help! Folgende Herausforderung:
In einer Dokumentdatenbank existiert ein Dokument, für alle Benutzer lesbar. (Feld-Status: Veröffentlicht)

Über einen Button "Bearbeiten" soll ein Editor eine Kopie von diesem Dokument erstellen. (Feld-Status: In Bearbeitung). Dokumente im Status "In Bearbeitung" sind nur für Editoren sichtbar. Nach Bearbeiten dieses Dokuments soll der Editor dieses Dokument über einen Button "Veröffentlichen" wieder der Allgemeinheit zugänglich machen(Status:Veröffentlicht). Das Original-Dokument soll dann durch diese Kopie ersetzt werden.

Gibt es eine Möglichkeit dieses Problem (Kopieren, Ersetzen) über @Formeln zu lösen, oder kann mir jemand mit Script weiterhelfen?

Vielen Tausend Dank!
Eure Nick
Titel: Re:Dokument kopieren, Bearbeiten, Original ersetzen
Beitrag von: Glombi am 10.07.03 - 13:41:59
Hi Nick,
für sowas nehme ich immer Script. Die Formelsprache ist da nen bisschen holprig.

Formel um neues Dokument zu erstellen
dim session as NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim doc as NotesDocument
dim newdoc as NotesDocument

set session = New NotesSession
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments   'alle gewählten Dokumente
if dc.Count = 0 then exit sub

set doc = dc.GetFirstDocument
while not( doc is nothing )

'Erstelle neue Kopie
set newdoc = doc.CopyToDatabase(db)

'Setze Bearbeitungsrecht
newdoc.Editors = session.Username   'setze Autorenfeld
newdoc.Readers = session.Username  'setze Lesefeld

'setze Status
newdoc.Status = "In Bearbeitung"

'Setze Feld mit DocID des ursprünglichen Dokuments
newdoc.InheritedDocID = doc.UniversalID

call newdoc.Save( True, True, True )

set doc = dc.GetNextDocument(doc)
wend



Titel: Re:Dokument kopieren, Bearbeiten, Original ersetzen
Beitrag von: Glombi am 10.07.03 - 13:46:04
Hier dann der Code für den Veröffentlichen Button

auch wieder per Agent (für gewählte Dokumente)

dim session as NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim doc as NotesDocument
dim olddoc as NotesDocument

set session = New NotesSession
set db = session.CurrentDatabase
set dc = db.UnprocessedDocuments  'alle gewählten Dokumente
if dc.Count = 0 then exit sub

set doc = dc.GetFirstDocument
while not( doc is nothing )

'Setze Leserecht für alle
doc.Readers = ""

'setze Status
doc.Status = "Veröffentlicht"

'Speichere Dokument
call doc.Save( True, True, True )

'Lösche altes Dokument
set olddoc = db.GetDocumentByUNID( doc.InheritedDocID(0) )
if not olddoc is nothing then
call olddoc.Remove( true )
end if

set doc = dc.GetNextDocument(doc)
wend
Titel: Re:Dokument kopieren, Bearbeiten, Original ersetzen
Beitrag von: Glombi am 10.07.03 - 13:47:02
P.S: Du musst die Feldnamen für Editors bzw. Readers natürlich durch Deine Feldnamen ersetzen.

Andreas