Autor Thema: Agent Cacheproblem  (Gelesen 5001 mal)

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Agent Cacheproblem
« am: 16.01.08 - 11:55:48 »
Hallo,
ich habe folgendes Problem mit Lotus Notes 6.5
Ich starte aus einer Ansicht einen Agenten, der das aktuelle Dokumente auf Feldinhalt etc. überprüft und bei fehlerhaftem Inhalt einen Fehler ausgibt.
Nach einer Änderung des Dokumentes und nochmalogem Start des Agenten bleibt der Cach-Inhalt im Agenten immer noch gleich, d.h. er greift nicht auf das geänderte Dokument zurück. Erst wenn ich den Agent auf einem anderem Dokument starte oder die DB neu öffne, wird der Cache aktualisiert.

Wie kann ich dem Agenten "beibringen" auf das aktuelle Dok zuzugreifen.
(Ich habe bereits den Agenten als Aktion oder auf als Agenten gestarten - kein Unterschied)

Danke
Bert

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #1 am: 16.01.08 - 12:07:09 »
... wie ist der Agent getriggert?
... verwendest du einfache Aktionen oder wie sieht der Code des Agenten aus?

Toni
Grüßle Toni :)

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #2 am: 16.01.08 - 12:17:06 »
Hallo ata,

der Agent steht unter gemeinsame Aktionen und per Menue aus der Asicht aufgerufen.
Aufgerufen wird der Agent:

Sub Click(Source As Button)
   Dim ses As New notessession
   Dim db As notesdatabase
   Dim col As notesdocumentcollection
   Set db = ses.currentdatabase
   Set col = db.unprocesseddocuments
   Set doc = col.getfirstdocument
   ....
                (Untersuchung z.B. der  Felder "PB_info")
                If doc.PB_info(0)<>"" Or doc.MBV_link<>"" Then
      test(23)="OK"
                else
                                test(23)="Fehler"
   End If

es kommt immer zum Fehler


Gruß Bert

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #3 am: 16.01.08 - 12:20:49 »
... bei mir gibt es keine Shared Actions - die meide ich wie der Teufel das Weihwasser  ;D - probier den Code in einer direkten Masken-Aktion - könnte sein, daß dann dein Cache-Problem gelöst ist...

Toni
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent Cacheproblem
« Antwort #4 am: 16.01.08 - 12:24:15 »
Ist das
doc.MBV_link<>""
aus dem Originalcode? Denn dies würde zu einem Laufzeitfehler führen.

Bernhard

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #5 am: 16.01.08 - 12:31:40 »
Hallo Ata,

ich habe den kompletten Script in einen "normalen" Agenten gespeichert und rufe diesen aus der Ansicht mit @Command ([ToolsRunMacro]; "Doc_Freigabe") auf.
Dennoch habe ich das gleiche Problem.
Wenn ich den Inhalt des aktuellen Dokumentes anzeigen lasse - über Eigenschaften - sehe ich den korrekten Wert, der Agent nimmt dennoch irgendwelche Cache-Daten.

Danke
Bert

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #6 am: 16.01.08 - 12:38:44 »
Hallo Bernhard,

der script

 doc.MBV_link<>""

führt bei mir zu keinem Fehler.
Bei MBV_Link handelt es sich um ein RT Feld. Ich überprüfe lediglich an dieser Stelle, ob in den Feld (Text, oder Link) steht.

Gruß Bert

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #7 am: 16.01.08 - 13:05:16 »
... auf Felder greift man aber als Array zu

If Cstr( doc.Feldname(0) ) <> "" Then ...

Toni
Grüßle Toni :)

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #8 am: 16.01.08 - 13:16:41 »
Hallo Toni,

danke , werde ich berücksichtigen.
Aber den Fehler beseitigt es nicht!
Ich habe übrigend mein Notes neu gestartet - und siehe da- der Agent funktioniert mehrfach richtig. Dann wieder nicht.
Jetzt wird das Problem zu einem echten Problem.
Mal cahed es die Feldinhalte mal nicht !
Da finde mal einer den Fehler

Gruß Bert

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #9 am: 16.01.08 - 13:23:04 »
... das sieht etwas obskur aus.  ???

Ich hatte durchaus auch schon solche Erscheinungen in Notes, die auf versteckte Fehler hindeuten. Mach mal einen Recompile in der Datenbank und schu mal, ob es Fehler gibt - bzw. wie sie sich dann verhält...  :-:

Toni
Grüßle Toni :)

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #10 am: 16.01.08 - 13:42:37 »
Hallo Toni,
auch da brachte bisher keinen Erfolg:

"Der komplette Code wurde erfolgreich kompiliert"

-geht -  geht nicht --
--ratlos-

Kann ich irgendwie beim Aufruf des Agenten den Cache beeinflussen ? , oder gar löschen ?

Gruß Bert

Driri

  • Gast
Re: Agent Cacheproblem
« Antwort #11 am: 16.01.08 - 13:50:41 »
Mit welchem Client wurde rekompiliert ? Es gab in einer Version des 6.5er Designers einen Bug, so daß der Code eben nicht neu kompiliert wurde (glaub 6.5.5 ?).

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Agent Cacheproblem
« Antwort #12 am: 16.01.08 - 13:54:12 »
1) Läuft der Agent durch oder bricht er ab?
2) Hast Du Fehlerbehandlung (On Error ...) drinnen?
3) Welches Ziel hat der Agent (Alle ausgewählten Dokumente, Alle Dokumente in der View, ...)
4) Schaust Du ev. in einer anderen Replik (z.B. am Server) nach, obwohl der Agent am Client läuft und Du siehst die Änderungen nicht, weil die beiden DBs nicht miteinander repliziert haben?
5) Was machst Du mit dem doc? Änderst Du da auch Werte und speicherst es dann? Wenn ja, poste doch etwas mehr Code, damit wir nicht im Trüben fischen müssen.





HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #13 am: 16.01.08 - 13:58:27 »
Zitat
Ich habe übrigend mein Notes neu gestartet - und siehe da- der Agent funktioniert mehrfach richtig. Dann wieder nicht.

... war dazwischen noch was anderes?

Toni
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent Cacheproblem
« Antwort #14 am: 16.01.08 - 14:04:25 »
Der Fehler muss im Agent liegen, da Dokumente (ausser ProfileDocs) gar nicht gecached werden.

Bernhard

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Agent Cacheproblem
« Antwort #15 am: 16.01.08 - 14:08:04 »
... Profildokumente scheiden aus, da die Collection mit Unprocessed gezogen wird. Daher denke ich auch, daß in dem Agent Dinge passieren, die irgendwas anstellen...

Toni
Grüßle Toni :)

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Agent Cacheproblem
« Antwort #16 am: 16.01.08 - 14:23:19 »
Ändere doch bitte einmal die Abfrage
Code
If doc.PB_info(0)<>"" Or doc.MBV_link<>"" Then
in
Code
Dim sPB_info as string
Dim sMBV_link as string

...

sPB_info = doc.GetFirstItem( "PB_info" ).text
sMBV_link = doc.GetFirstItem( "MBV_link" ).text

If not ( len( sPB_info ) = 0 or len( sMBV_link ) = 0 ) then

Vorteil: Du siehst im Debugger gleich den Textinhalt der Felder.

Ansonsten zusätzlich zu Martins Post: Was passiert alles, bevor Du Dir das nächste Dokument holst (Codezeilen).
Andy

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #17 am: 16.01.08 - 14:58:42 »
Hallo,
erst einmal Danke für die ganzen Hinweise,
ich werde diese gleich in meinen Agenten einbauen.
Hier erst einmal ein Auszug aus dem Agenten:

                Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim ses As New notessession
   Dim db As notesdatabase
   Dim col As notesdocumentcollection
   Set db = ses.currentdatabase
   Set col = db.unprocesseddocuments
   Set doc = col.getfirstdocument
   
   Dim Feld(4) As String
   Dim Feldinfo(4) As String
   Dim test(10) As Variant
   Dim ausdruck (14) As Variant
   Dim item As notesrichtextitem   
   Dim rtitem As Variant
   On Error Resume Next
   a=""
   f=0
   
   'RTFeldgrösse berechenen
   Feld(0)="SachLL" 'RTFELDER
   Feld(1)="PCode"
   Feld(2)="PGTest"
   Feld(3)="L_Ver_PIInst"
   Feld(4)="L_Ver_PIInfo"
   
   ' sub zur Berechnung der Feldgrösse !
                ' Rückgabe String wenn Feldgröße erreicht (Dokumentationsmenge)
   For r=0 To 4
     FG= feldgrösse(Feld(r))
     If FG<>"" Then FG=Feldinfo(r)+Chr$(10)
     fehler=fehler+FG
   Next
   
   If fehler<>"" Then
    ausgabe=Chr$(10)+"Bei folgenden 'Dokumentationsreitern' wurde nicht die geforderte
                                  Dokumentationsmenge angegeben:"+Chr$(10)+Fehler+_
      "Bitte mehr dokumentieren!"+Chr$(10)+Chr$(10)+Chr$(10)
      f=f+1
   End If
   
   '______________________
   test(1)=doc.PRGNAME(0)
   test(2)=doc.Aktenführer(0)
   test(3)=doc.verantwMA(0)
   test(4)=doc.PRGKategorie(0)
   test(5)=doc.PRGKlasse(0)
   test(6)=doc.Lizenzart(0)
   
   If Cstr(doc.PQ_info(0))<>"" Or Cstr(doc.MAQ_link(0))<>"" Then
      test(7)="OK"
   End If

   If Cstr(doc.PQ_info(0))<>"" Or Cstr(doc.MAK_link(0))<>"" Then
      test(8)="OK"
   End If

   If Cstr(doc.PB_info(0))<>"" Or Cstr(doc.MBV_link(0))<>"" Then
      test(9)="OK"
   End If

   If Cstr(doc.P_info(0))<>"" Or Cstr(doc.PPV_link(0))<>"" Then
      test(10)="OK"
   End If
   
   ausdruck(1) ="Fehlerhinweise..."
   ausdruck(2) ="Fehlerhinweise..."
   ausdruck(3) ="Fehlerhinweise..."
   ......
   
   
   
   For x = 1 To 10
     If Trim(test(x))="" Then
       f=f+1         
       ausgabe = ausgabe + ausdruck(x)+Chr$(10)
     End If
   Next
   
   
       If f>0 Then
          If F=1 And Fehler<>"" Then
    meldung="Es wurde " + Str(f) + "   Fehler  beim Check gefunden ! - Freigabe möglich "+_
                                   Chr$(10)+"Bitte prüfen Sie den entsprechenden Inhalt !"+Chr$(10)+_
                                   Chr$(10)+ausgabe
     Messagebox  meldung ,"16", "Ergebnis des Checks"
           Else
     meldung="Es wurden " + Str(f) + "   Fehler  beim Ceck gefunden ! - Eine Freigabe "+_
                                  "nicht möglich.   " + Chr$(10)+Chr$(10)+ausgabe
     Messagebox  meldung ,"16", "Ergebnis des Checks:"
         Exit Sub
           End If
      End If


Ich denke mir, wenn der Fehler in dem Agenten selbst liegt, kann es nur in der Dokumentenauswahl liegen, oder?


Gruß
Bert


Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent Cacheproblem
« Antwort #18 am: 16.01.08 - 15:08:35 »
Hallo Driri,
es haldelt sich nin der Tat um die Version 6.5.5. Ist dort ein BUG im System.
Wird dieses erst mit der 7er Version beseitigt. Wäre echt schlecht, da unser ganzes Haus mit
Ver 6. arbeitet.

Hallo m3,
also:
- der Agent läuft durch - auch mit Debugger kein (erkennbarer) Fehler
- Agent läuft für ausgewählte Dokumente
- mit einer Replik kann es nicht zu tun haben, da ich die DB schon von sämtlichen Repliken
  entkoppelt habe (vollkommen separate DB)
- Mit dem Agent will ich keine Dokumente ändern, sondern einfach nur deren Inhalte checken!
  Die Bearbeitung soll dann im Dokument erfolgen.
  Erst wenn der Check erfolgreich war, erfolgt eine Weiterarbeitung - Freigabe etc...-

Gruß
Bert

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent Cacheproblem
« Antwort #19 am: 16.01.08 - 15:16:47 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz