Autor Thema: Antwortdokumente und Leser und Autorenfelder  (Gelesen 13794 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #40 am: 16.11.07 - 14:58:39 »
hast du 'Option declare' nicht eingeschaltet/gesetzt?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #41 am: 16.11.07 - 15:03:42 »
Guter Einwand  ???

Wie sieht es mit

   Set respdoc = db.GetDocumentByUNid(Source.Document.UniversalID)

Der Fehler bliebe in diesen Fall identisch

Thomas

äääää

dieses Posting verstehe ich nicht.

aber bei:
parent.Status = respdoc.Status
brauchst du ein parent und ein respdoc, und in deinem Codeschnipsel wird das respdoc nirgends gesetzt (du hast 2 auskommentierte Zuweisungen auf das respdoc da drin, aber keine 'aktive' Zuweisung).

grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #42 am: 16.11.07 - 15:05:15 »
Nein das habe ich nicht gesetzt.

In der Hilfe steht:

Option Declare
Dim y As Integer
y% = 10            ' No error
x = 20             ' Compiler error (x has not been declared)

Ich gehe also davon aus das ich es auch nicht setzten darf... odeR?


Thomas

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #43 am: 16.11.07 - 15:14:18 »
Du darfst nicht nur, sondern du solltest es auch tun.

und zwar schleunigst.

und dann solltest du für dein programmers pain die Farbe für Kommentare anders setzen als die für Programmcode, das erspart dir viel Ärger.

Das Beispiel in der Hilfe besagt , dass du den Code erst abspeichern kannst, wenn du nicht nur y, sondern auch x deklariert hast.


Edith: wobei er in deinem Fall nicht gemeckert hätte, da du das ja deklariert hattest, sorry.
« Letzte Änderung: 16.11.07 - 15:30:30 von DAU-in »
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #44 am: 16.11.07 - 15:35:55 »
ah wieder was gelernt aber obwohl ich jetzt unter Options Option Declare hingeschrieben habe kann ich die Maske abspeichern und der Fehler bleibt gleich...

Warum?


Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #45 am: 16.11.07 - 15:44:34 »
Hast du das respdoc denn jetzt gesetzt?????
sprich steht da irgendwo respDoc =  ....
ohne ein Kommentarzeichen?


was sagt denn dein Debugger exakt an der Stelle
Set respdoc = db.GetDocumentByUNid(Source.Document.UniversalID)
????


mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #46 am: 16.11.07 - 16:16:55 »
an der Stelle sagt er nichts...

bzw. nachdem ich den ScriptDEbugger gestartet habe und ich mittels "Schritt ausführen" eine Zeile nach der anderen anspringe folgt nach

Set respdoc = db.GetDocumentByUNid(Source.Document.UniversalID)

einfach parent.Status = respdoc.Status

und dann geht er nicht auf exit sub sondern auf dem errorhandler....

Im Script Debugger im Reiter Variable sehe ich

unter UniversalID die aktuelle ID und unter PARENT.DocumentUnit auch die Passende ID

Ich vestehe es einfach nicht...

Gruß

Thomas

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #47 am: 16.11.07 - 16:20:32 »
und das respdoc ist auch befüllt?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #48 am: 16.11.07 - 16:32:08 »
ja es ist befüllt....

was leer ist ist parent!?

Wieso das? In der gleichen Datenbank an anderer Stelle funktioniert das!

Unter Document bei ParentDocumentUnid steht auch eine ID drin....

Muß ich das noch verstehen?

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #49 am: 16.11.07 - 16:46:07 »
ich verstehe die welt nicht mehr....

habe die Zeile

Set parent = db.GetDocumentByID(Source.Document.ParentDocumentUNID)

gelöscht und von dem funktionierenden Agenten kopiert...

Fazit: auch Parent wird befüllt... und er springt nicht mehr zum errorhanlder sondenr läuft ordentlich durch...

Super! Jetzt mach ich Feierabend. Vielen Vielen Dank

Heute habe ich wirklich etwas gelernt...

Gruß

Thomas

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #50 am: 16.11.07 - 16:48:10 »
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.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #51 am: 16.11.07 - 17:40:56 »
Heute habe ich wirklich etwas gelernt...

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

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Antwortdokumente und Leser und Autorenfelder
« Antwort #52 am: 20.11.07 - 12:22:10 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz