Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Demian am 02.02.10 - 10:46:22

Titel: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Demian am 02.02.10 - 10:46:22
Hallo,

ich habe einen periodischen Agenten, der mir gegen Ende alle docs in einer Ansicht löschen soll.

Leider findet der Agent keine Dokumente in der Ansicht, obwohl ich sie im Designer ganz normal sehe. Die View selbst findet er aber, da mir view.name den richtigen Wert ausgibt. Jemand eine Idee, wo das Problem liegen könnte?

Was habe ich bisher gemacht:
NotesViewEntryCollection probiert - selbes Problem
NotesDocumentCollection probiert - selbes Problem
NotesDocument probiert - selbes Problem
Eigenschaft Vorgabeansicht gelöscht und neu gesetzt - selbes Problem

Bin so langsam echt am Verzweifeln


Gruß
Demian
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: ascabg am 02.02.10 - 10:48:39
Hallo,

Spontan fallen mir Zugriffsrechte ein.


Andreas
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Driri am 02.02.10 - 10:49:19
Werden Leserfelder verwendet ?
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: ata am 02.02.10 - 10:50:00
... kannst du deinen Code in anonymer Form mal einhängen - ansonsten ist das eine Kristallkugel...

Toni  ;)
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Demian am 02.02.10 - 10:57:51
@Andreas: Der Agent läuft mit der Server-ID und beschränkte OP's zulassen ist auch drin.
@Driri: Die Dokumente haben nur Autorenfelder.
@ata: klar, kein Problem, hier der Testcode:

zu erwähnen wär vielleicht noch: Die Dokumente die gelöscht werden sollen, kriegen ein Kennzeichen "D" verpasst und landen dadurch in der Ansichtsauswahl.

Function DeleteMarkedChipAssigns()
   '*********************************************************************************************************************************
   'deletes the chip assigns after creating interface file
   '*********************************************************************************************************************************
   'invoked from:      Initialize of this agent
   'used libraries:      logging
   'used functions:      CreateLogEntry(DBName As String, User As String, DesignElement As String, InvokingEvent As String, _
   '                     Text As String)as Boolean   
   '*********************************************************************************************************************************
   On Error Goto ErrHandle
   '*********************************************************************************************************************************
   Dim viewDel As NotesView
   Dim docCol As NotesDocumentCollection   
   Dim docDel As NotesDocument
'*********************************************************************************************************************************
   'delete the marked chip assignments
   Set viewDel = db.GetView("lkpInterfaceChipAssignmentsDel")
   Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
   "Name der Ansicht: " & viewDel.Name)
   
   Set docDel = viewDel.GetFirstDocument
   
   Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
   "NoteID: " & docDel.NoteID)
   
   While Not (docDel Is Nothing)
      Call docDel.Remove(True)
      
      Set docDel= viewDel.GetFirstDocument
   Wend
   
   Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
   "alle gekennzeichneten Chip-Zuordnungen gelöscht")
   
   
%REM
   Set doccol = viewDel.GetAllDocumentsByKey("D",True)
   
   If Not (docCol.Count = 0) Then      
      Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
      "Anzahl löschende Chip-Zuordnungen: " & docCol.Count)
      
      Call doccol.RemoveAll(True)
      
      Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
      "alle gekennzeichneten Chip-Zuordnungen gelöscht")
   Else
      Call CreateLogEntry(DB.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
      "keine zum Löschen gekennzeichnete Chip-Zuordnungen")
   End If
%ENDREM
   
Leave:
   Exit Function
   
ErrHandle:
   Call CreateLogEntry(db.title,s.CommonUserName,"Agent: InterfaceTime","DeleteMarkedChipAssigns",_
   "Error" & Str(Err) & ": " & Error$ & " in Zeile " & Erl)
   Resume Leave
End Function
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: ata am 02.02.10 - 11:09:17
... die db ist nicht initialisiert - wie kommst du an die view?

Toni
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Demian am 02.02.10 - 11:12:14
sorry, die ist global deklariert und wird im Initialize gesetzt.
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: ata am 02.02.10 - 11:17:10
... gemäß deinem Code müsstest du eigentlich auf Fehler laufen, denn wenn es stimmt, daß du kein Dokument ziehst, dann kann auch kein Logeintrag damit erstellt werden - was sagt der Debugger?

Toni
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Demian am 02.02.10 - 11:19:02
STOP! STORNO!

Weiß nicht wieso, aber meistens wenn ich hier was reinsetz, find ich den Fehler dann doch. Das Problem ist die Reihenfolge in meinem Code. In einer vorhergehenden Prozedur, wird was am Kennzeichen gedreht, dadurch passt die Ansichtsauswahl nicht mehr.

Oh mann ::) Und ich such seit gestern wie ein doofer, weil ich die Doks im Designer ja seh, nur zum Zeitpunkt des Prozedurstarts sind se dann weg.

Werd also einfach die Reihenfolge ändern. 

Tut mir leid, euch damit beschäftigt zu haben  :-[

Gruß
Demian
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: Demian am 02.02.10 - 11:20:41
... gemäß deinem Code müsstest du eigentlich auf Fehler laufen, denn wenn es stimmt, daß du kein Dokument ziehst, dann kann auch kein Logeintrag damit erstellt werden - was sagt der Debugger?

Toni

Ja bei dieser Version war er dann auch auf die 91 geknallt. Nochmals sorry...wegen sowas doofem  :(
Titel: Re: view.getfirstdocument findet kein doc, obwohl vorhanden
Beitrag von: ata am 02.02.10 - 11:23:55
... schon OK. Schönen tag noch...

Toni  ;)