Domino 9 und frühere Versionen > ND6: Entwicklung
Problem mit LotusScript
koehlerbv:
Na dann: Willkommen im Forum, Thomas!
Bernhard
thomas_xyz:
Guten Morgen und vielen Dank.
Anbei der Rest des Codes, es werden aber tatsächlich nur nich ein paar Autorenfelder gesetzt. Ich hatte zwischendurch auch den Effekt, dass das Archiv-Kennzeichen in das aktuelle Dokument geschrieben wird. Aber immer nur bei Versionen größer 1.... Hatte den Eindruck, dass ich mit Front- und Backend durcheinandergeraten bin, aber dann dürfte auch die erste Archiv-Aktion nicht funktionieren. Oder seh ich da was falsch? Wie auch immer: über Hilfe freue ich mich sehr.
Der Code in gänze - bei den Autoren-Feldern hab ich ein bisschen gespielt, aber wie gesagt - die erste Archivierung funktioniert:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim item As NotesItem
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim doc As NotesDocument
Set doc = uidoc.document
Dim doc_arch As NotesDocument
Dim stamm_archiv As String
Dim resp_item As NotesItem
Dim i As Integer
Dim user As String
user=session.commonusername
i=Messagebox ("Wollen Sie die Änderung speichern?",4,"Änderung speichern")
If i = 6 Then
If doc.KTO(0)<>doc.KTO_1(0) Then
Messagebox "Überprüfen Sie die Kontonummern auf Übereinstimmung",OK,"Kontonummern stimmen nicht überein!"
Exit Sub
Else
If doc.Kennwort(0)<>doc.Kennwort_1(0) Then
Messagebox "Überprüfen Sie die Kennworte auf Übereinstimmung",OK,"Kennworte stimmen nicht überein!"
Exit Sub
Else
Dim unitnr As String
unitnr=doc.docidarchivrev(0)
Set doc_arch = db.GetDocumentByUNID(unitnr)
doc_arch.stamm_archiv=1
Call doc_arch.save(True,True)
Set item = doc.GetFirstItem ("autoren_1")
Call item.Remove
Set item= New NotesItem( doc , "autoren_1" , "[admin]")
item.IsAuthors = True
Set resp_item = doc_arch.GetFirstItem ("autoren_1")
Call resp_item.Remove
Set resp_item = New NotesItem( doc_arch , "autoren_1", "[admin]" )
resp_item.IsAuthors=True
Set item = uidoc.document.GetFirstItem ("autoren_1")
Call item.Remove
Set item= New NotesItem( uidoc.document, "autoren_1" , user)
item.IsAuthors = True
Call uidoc.Save
Call uidoc.Close
Call doc.Save(True, True)
Call doc_arch.save(True,True)
Call doc.Save(True, True)
End If
End If
End If
End Sub
dirk_2909:
Hallo,
Du sagst
--- Zitat ---User sitzt auf Dok in Ansicht,
--- Ende Zitat ---
Heißt das, dass er eine Ansicht geöffnet hat und ein min. ein Dokument markiert hat?
Betätigt er eine Aktion innerhalb der Ansicht?
Dann kannst/solltest Du nicht das CurrentDocument vom workspace nehmen.
Nimm lieber die UnprocessedDocuments:
....
dim coll as NotesDocumentCollection
set coll = db.UnprocessedDocuments
if coll.Count = 0 Then
'??
else
set doc = coll.GetFirstDocument
While not doc is Nothing
'dein COde
Set doc = coll.GetNextDocument( doc )
Wend
end if
thomas_xyz:
Hallo Dirk -
der Ablauf ist wie folgt: User wählt ein Dokument in der Ansicht, klickt auf Aktion, die das Dokument kopiert und das neue Dokument zur Bearbeitung öffnet. Wenn der User dann die Änderungen durchgeführt hat, klickt er wieder auf eine Aktion (er befindet sich jetzt aber im Dok) und daraufhin soll die Vorgängerversion archiviert werden, also mit dem Kennzeichen 1 im Feld stamm_archiv versehen werden. Aber eben erst, wenn das neue, veränderte Dok abgeschlossen wurde.
Über weitere Hilfe würde ich mich immer noch sehr freuen, bin nämlich noch kein Stück weiter....
Grüße - Thomas.
dirk_2909:
Hallo
--- Code: --- unitnr=doc.docidarchivrev(0)
Set doc_arch = db.GetDocumentByUNID(unitnr)
doc_arch.stamm_archiv=1
Call doc_arch.save(True,True)
--- Ende Code ---
Hier würde ich ein wenig mehr Fehlerbehandlung einbauen ;)
Sind in dem Dokument "Version 1" auch alle Autorenfelder korrekt gesetzt?
Warum speicherst Du das Dokument am Ende nochmal??
--- Code: --- Call uidoc.Close
Call doc.Save(True, True)
Call doc_arch.save(True,True)
Call doc.Save(True, True)
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln