Autor Thema: Agent Error Accessing Product Object Method  (Gelesen 2257 mal)

TomLudwig

  • Gast
Agent Error Accessing Product Object Method
« am: 15.03.04 - 10:32:43 »
Hallo,

ich bekomme bei einem periodischen Agenten die Fehlermeldung:
"Error Accessing Product Object Method"

Die Fehlermeldung erscheint in der Serverkonsole...

Ich finde diese Fehlermeldung nur in Verbindung mit Replikationen. Aber nicht mit Agenten der in einer Ansicht alle Dokumente löschen soll.

Was mache ich falsch, wo kann das Problem liegen ?

DANKE!!!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Agent Error Accessing Product Object Method
« Antwort #1 am: 15.03.04 - 10:47:11 »
Verwendest Du FrontEnd-Objekte ? Sowas wie Dim ws as New NotesUIWorkspace ?

Bernhard

TomLudwig

  • Gast
Re:Agent Error Accessing Product Object Method
« Antwort #2 am: 15.03.04 - 10:50:27 »
Eigentlich nicht.
Das komische ist zudem, dass wenn ich den Agenten manuell starte, läuft er ohne Probleme durch & er ist auf einem anderen Server ohne Probleme gelaufen.

Anbei noch mal der komplette Quellcode des Agenten.

Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim tempdoc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("($DelFlag)")
   Set doc = view.GetFirstDocument
   
   If doc Is Nothing Then
      Set doc = New NotesDocument(db)
      doc.Form = "DeleteFlag"
      doc.CanDelete = "1"
   Else
      Call doc.ReplaceItemValue("CanDelete","1")
   End If
   
   Call doc.Save(True, False)
   
   Set view = db.GetView("($DBLocked)")
   Set doc = view.GetFirstDocument
   
   If doc Is Nothing Then
      Set view = db.GetView("($DelFlag)")
      Set doc = view.GetFirstDocument
      Call doc.ReplaceItemValue("CanDelete","0")
      Call doc.Save(True, False)
      Exit Sub
   End If
   
   While Not ( doc Is Nothing )
      Set tempdoc = doc
      Set doc = view.GetNextDocument( doc )
      
      If db.GetOption(DBOPT_SOFTDELETE) Then
         Call tempdoc.RemovePermanently(True)
      Else
         Call tempdoc.Remove(True)
      End If
   Wend
   
   Set view = db.GetView("($DelFlag)")
   Set doc = view.GetFirstDocument
   Call doc.ReplaceItemValue("CanDelete","0")
   Call doc.Save(True, False)
   
End Sub

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Agent Error Accessing Product Object Method
« Antwort #3 am: 15.03.04 - 11:19:51 »
Bau Dir mal einen ErrorHandler ein (On Error Goto ErrorRoutine) und lass Dir dort mit Print Error$ und Erl ausgeben, damit die betreffende Stelle identifiziert werden kann.
Hast Du für NotesDatabase-GetOption die erforderliche Konstanten-Datei eingebunden ?
Hast Du Option Declare gesetzt ?

HTH,
Bernhard

TomLudwig

  • Gast
Re:Agent Error Accessing Product Object Method
« Antwort #4 am: 15.03.04 - 11:41:46 »
Also der Error-Handler gibt mir aus in Zeile 39 - NoResume (bei der GetOption Methode der Database)

Ich habe die Datei für die GetOption Methode nicht eigebunden, da ich da drüber gar nichts weiß.

Was unter der Declare-Option zu verstehen ist, weiß ich leider auch nicht.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Agent Error Accessing Product Object Method
« Antwort #5 am: 15.03.04 - 11:53:08 »
Das No Resume kommt sicherlich daher, dass Dein ErrorHandler den Fehlercode nicht wieder zurück setzt.
Abhilfe: Nach Ausgabe des Fehlercodes die Routine explizit verlassen (hier: Exit Sub)

DBOPT_SOFTDELETE ist eine Konstante, der natürlich auch ein Wert zugewiesen werden muss. Tust das nicht, ist das Ding 0, und dafür sieht NotesDatabase.GetOption nichts vor.
Du bindest also entweder mit
%INCLUDE "lsconst.lss"
die LS-Konstanten-Definitionen ein, oder verwendest explizit den Wert, den Dir die DesignerHelp anbietet: 49.

Option Declare - damit sollte man jede Code-Erstellung einleiten. Der Compiler prüft danach, ob jede verwendete Variable auch brav deklariert wurde. Das erspart einem sehr viele unnötige Fehlersuchen ...

HTH,
Bernhard

TomLudwig

  • Gast
Re:Agent Error Accessing Product Object Method
« Antwort #6 am: 15.03.04 - 12:45:27 »
Ich gebs auf.

Ich hab die Lsconst.lss eingebunden.
Die Option Declare hinzugefügt und den error handler reingetan

ich bekomme immernoch die gleiche fehlermeldung.

Schmeiß ich das ganze raus und lösche meine Dokumente mit
Call doc.Remove(true)
funktionierts einwandfrei...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Agent Error Accessing Product Object Method
« Antwort #7 am: 15.03.04 - 12:55:24 »
Ist das eventuell eine Datenbank von R5 (ODS 41) ?
Die könnte natürlich Schwierigkeiten machen mit dieser neuen Methode aus R6 (nur eine Vermutung).
Oder ist es gar ein R5-Server ? Dann kann es nicht funktionieren, wohl aber "manuell" oder auf "anderen Servern".

Bernhard

TomLudwig

  • Gast
Re:Agent Error Accessing Product Object Method
« Antwort #8 am: 15.03.04 - 12:58:48 »
Die ODS Version.... ach verdammt...

An die hab ich gar nicht mehr gedacht. Ich hab sie geändert, um sie auch unter R5 aufmachen zu könnnen....

Jetzt funktionierts... DANKE!!!

Etz hab ich aber immernoch das Problem mit dem Drucken -> Anderer Thread "Druckproblem" kannst mir da vielleicht auch noch helfen ? thx

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz