Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: klaussal am 02.05.03 - 14:22:03

Titel: agent + alle documente einer db
Beitrag von: klaussal am 02.05.03 - 14:22:03
hi zusammen,
habe da einen agenten, der durch alle db's dackelt. für jede db macht eine collection aller documente. normalerweise müsste ich ja über collection.count die anzahl zurückkriegen. tut es aber nicht. bei einigen db's klappt es, bei 98% aber nicht. ich bin in allen db's als manager eingetragen.
hat jemand eine idee, woran es liegen könnte ?

vielen dank schon ma für hinweise  :)
Titel: Re:agent + alle documente einer db
Beitrag von: Performance am 02.05.03 - 17:41:29
dann müsste es am code liegen  ??? ???


cu
Titel: Re:agent + alle documente einer db
Beitrag von: eknori (retired) am 02.05.03 - 18:21:41
Hallo Klaus,

DU bist in allen DBs als Manager eingetragen; ist das auch der Unterzeichner des Agenten ??

Poste mal den Code, dann ist es einfacher  ;D

eknori
Titel: Re:agent + alle documente einer db
Beitrag von: klaussal am 02.05.03 - 19:22:13
@eknori,

... code kommt am montag.
jetzt ist erst mal notes-freie-zeit angesagt  :)
Titel: Re:agent + alle documente einer db
Beitrag von: eknori (retired) am 02.05.03 - 19:37:53
na was is nu wieder des... Notes Freie Zeit ??? Haste etwa noch andere Hobbies ??  ;D ;D
Titel: Re:agent + alle documente einer db
Beitrag von: klaussal am 05.05.03 - 08:11:16
@eknori,

hier ist der code (auschnitt):

Machweiter:
   Call db.open(strServer, strDB)
   Set docNew = dbziel.createDocument
   docNew.form = "m_db"
   docNew.title = db.title
   docNew.name = db.Filename
   docNew.path = strPath
   docNew.groesse = db.Size
   Set collection = db.AllDocuments
   n = collection.Count
   If Not db.isOpen Then
      docNew.number_of_docs = 0
   Else
      Set collection = db.AllDocuments
   End If
   If db.IsFTIndexed Then
      docNew.indexed = "ja"
   Else
      docNew.indexed = "nein"
   End If
Titel: Re:agent + alle documente einer db
Beitrag von: ghost am 05.05.03 - 11:12:59
Hallo,

wo schreibst Du denn n oder collection.Count in das Feld number_of_docs?
Titel: Re:agent + alle documente einer db
Beitrag von: Performance am 05.05.03 - 11:40:36
ich nehme an "machweiter" steckt in einer Schleife...
- wenn du durch alle db dackelst hast du auch dein directory initialisiert
- wo ist deine Fehlerroutine - hast du hier nur ein resume next gemacht ?
- erst prüfen ob die db offen ist dann wird die collection gesetzt
deshalb kann es sein das ein Fehler schon vor dem n = collection.count auftritt, und ein resume next zur nächsten db läuft


cu
Titel: Re:agent + alle documente einer db
Beitrag von: klaussal am 05.05.03 - 12:35:09
@performance,

jau, resume next war drin.
problem besteht immer noch. ich mache einen call db.open und er liefert mir immer (99,9 %) false zurück. das serverdokument scheint in ordnung zu sein. über die gruppe bin ich überall als admin in den acl's drinne  ??? ??? ???
Titel: Re:agent + alle documente einer db
Beitrag von: Performance am 05.05.03 - 14:41:57
@klaussal

es ist immer ein wenig schwierig aus code snippets auf Fehler zu schliessen

- ich paste dir mal meinen Ansatz - es gibt auch im Forum verschieden Ansätze - man muss nur suchen  ;D

Dim servern As NotesName
Dim serverdir As NotesDBDirectory
Dim SearchServer As String

On Error Goto ErrorMsg

Set servern = New NotesName(SearchServer)
Set serverdir = New NotesDbDirectory( servern.common )
   If Not (serverdir Is Nothing) Then
         i= 0
         Set tmpdb = serverdir.GetFirstDatabase(DATABASE)
         
         While Not (tmpdb Is Nothing)              
            i = i + 1
            Set dummydb = s.GetDatabase(tmpdb.Server, tmpdb.FilePath)
            If (dummydb.IsOpen = False) Then   Call dummydb.Open(tmpdb.Server, tmpdb.FilePath)                    
   ''  tue dies und jenes         
              Call createDoc(tmpdb, dummydoc, "Database")            '' beim resume next habe ich schon die Fehlermeldung im        
        '' dokument gespeichert - hier spielt der resume next
        '' keine  Rolle mehr ausser der Sprung zur nächsten db         
            Call dummydb.close
            Set tmpdb = serverdir.GetNextDatabase
            
         Wend
    Else
   Print "... no server directory available! exit"
   End If


ErrorMsg:
   If Err = 4060 Then Resume Next    '''' cannot open database - no access
   If Err = 91 Then Resume Next    '''' cannot open database ... Folgefehler -> Object variable not set
   ErrorMessage =  "  ERROR " & Err & " at line " & Str$(Erl) & ": " & Error$  
   Print ErrorMessage
   Resume Next
''' oder eine Ausgabe in eine Agent log



-- hoffe das hilft dir weiter

cu
Titel: Re:agent + alle documente einer db
Beitrag von: klaussal am 05.05.03 - 15:12:52
@performance,

danke  :D

die suche ist ja schön + gut, aber man muss erst einmal die suchbegriffe kennen  ;D