Domino 9 und frühere Versionen > ND6: Entwicklung
Antwortdokumente und Leser und Autorenfelder
DAU-in:
wenn die ID verkehrt ist .....
Set parent = db.GetDocumentByID(Source.Document.ParentDocumentUNID)
wie definierst du die ParentDocumentUNID .
wenn das ein Item ist, muss noch (0) dahinter.
koehlerbv:
--- Zitat von: cash am 16.11.07 - 16:46:07 ---Heute habe ich wirklich etwas gelernt...
--- Ende Zitat ---
Thomas, das wage ich zu bezweifeln. Du weisst nicht, was Du gemacht hast, und Du weisst nicht, warum es jetzt "funktioniert" (wie auch immer).
Wir wissen es auch nicht, da wir Deinen aktuellen Code nicht kennen (und wo er ausgeführt wird).
Die Beteiligung der alten Hasen wurde hier immer geringer, da keiner mehr richtig durchsieht und auch keine Zeit dafür da ist, da jedes Mal nochmal nachzuhaken oder aus Bruchstücken etwas zu rekonstruieren.
Es sieht also noch nicht gut aus, um mit dem jetzigen Zustand kannst Du Dich nicht zufrieden geben.
Bernhard
cash:
hier jetzt nochmal mein Endstand:
Aufgabe: Script soll Felder aus dem Antwortdokument in das Hauptdokument schreiben. Unabhängig davon ob der User im Autorenfeld steht oder nicht.
Um meine Fehler besser zu finden habe ich den Script erstmal im Querclose reingeschrieben (somit konnte ich über den Debugger sehen welche Variablen richtig gefüllt werden und welche nicht)
Der User steht im Antwort- und Hauptdokument im Feld Autoren.
On Error Goto errorHandler
Dim db As NotesDatabase
Dim respdoc As NotesDocument
Dim parent As NotesDocument
Dim Session As New NotesSession
Set db = session.CurrentDatabase
Set respdoc = db.GetDocumentByUNid(Source.Document.UniversalID)
Set parent = db.GetDocumentByUNid(Source.Document.ParentDocumentUNID)
parent.Status = respdoc.Status
parent.Sachgebiet = respdoc.Sachgegiet
parent.Vorschlag = respdoc.Vorschlag
Call parent.Save (True, False, True)
Exit Sub
errorHandler:
Print {error #} & Cstr(Err()) & { } & Error() & { in line } & { } & Cstr(Erl())
Exit Sub
Das funktioniert mit der oben geschriebenen Einschränkung User muß im Autorenfeld stehen. Wenn er kein Autor ist geht der Code im errorHandler und schreibt unten Sinngemäß "Nicht genug Rechte! So mache ich es nicht"
Das Ziel war das der Script auch funktioniert wenn der User keine Autorenrechte auf das Hauptdokument hat.
Also muß der Code per serversignierten Agenten ausgeführt werden.
Im Queryclose des Antwortdokumentes steht:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim agent As NotesAgent
Set db = session.CurrentDatabase
Set doc = Source.Document
Set agent = db.GetAgent("AgentAnonym")
Call agent.RunOnServer(doc.NoteID)
Im Agenten steht:
On Error Goto errorHandler
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim respdoc As NotesDocument
Dim parent As NotesDocument
Dim Session As New NotesSession
Set db = session.CurrentDatabase
Set agent = session.CurrentAgent
Set respdoc = db.GetDocumentByID(agent.ParameterDocID)
Set parent = db.GetDocumentByUNID(respdoc.ParentDocumentUNID)
parent.Status = respdoc.Status
parent.Sachgebiet = respdoc.Sachgegiet
parent.Vorschlag = respdoc.Vorschlag
Call parent.Save (True, False, True)
Exit Sub
errorHandler:
Print {error #} & Cstr(Err()) & { } & Error() & { in line } & { } & Cstr(Erl())
Exit Sub
Somit funktioniert der Script wie er soll ohne das der User Autoren-Rechte auf das Hauptdokument hat.
Gruß und vielen Dank an allen die mir hierbei geholfen haben...
Thomas
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln