Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet 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
-
Hallo,
Spontan fallen mir Zugriffsrechte ein.
Andreas
-
Werden Leserfelder verwendet ?
-
... kannst du deinen Code in anonymer Form mal einhängen - ansonsten ist das eine Kristallkugel...
Toni ;)
-
@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
-
... die db ist nicht initialisiert - wie kommst du an die view?
Toni
-
sorry, die ist global deklariert und wird im Initialize gesetzt.
-
... 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
-
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
-
... 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 :(
-
... schon OK. Schönen tag noch...
Toni ;)