Autor Thema: JAVA DocumentCollection Class  (Gelesen 6736 mal)

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
JAVA DocumentCollection Class
« am: 25.07.05 - 16:59:08 »
Warum werden bei folgendem Code die Dokumente nicht verarbeitet ?
Wenn man docCur = agentContext.getDocumentContext(); anstatt der while-Schleife nutzt, wird ein Dokument richtig verarbeitet.

import lotus.domino.*;
import java.util.*;

public class JavaAgent extends AgentBase {

   public void NotesMain() {

      try {
         Session session = getSession();
         AgentContext agentContext = session.getAgentContext();

         // (Fügen Sie Ihren Code hier ein)
                        Database db = agentContext.getCurrentDatabase();
                        DocumentCollection dc = db.getAllDocuments();
                        Document docCur = dc.getFirstDocument();
     
                        while (docCur != null) {         
         
         Item NA = docCur.getFirstItem("Artist");
         NA.setSummary(true);
                        RichTextItem NARich = (RichTextItem)docCur.getFirstItem("Artist");         
         NA.setValueString(NARich.getFormattedText(false,0,0));
                   docCur.copyItem(NA,"CopyArtist");
                        docCur.save();
                        docCur = dc.getNextDocument();
               
                        } 

      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: JAVA DocumentCollection Class
« Antwort #1 am: 27.07.05 - 10:43:45 »
irgendwie schon ziemlich frech. Dreifach Post im Forum.
Glaubst du wir haben nix besseres zu tun?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: JAVA DocumentCollection Class
« Antwort #2 am: 27.07.05 - 10:51:50 »
Und das auch noch bei seinen "ersten 3. Einträgen"!

Ich glaub einige wissen nicht das wir das alles freiwillig machen!
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #3 am: 27.07.05 - 11:09:30 »
sorry, aber ich wusste nicht so richtig zu welchem Thema das am besten passt. Ihr könnt ja zwei Einträge rauslöschen.

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: JAVA DocumentCollection Class
« Antwort #4 am: 27.07.05 - 11:11:49 »
Ich würde schon meine, dass du wissen solltest ob du LN R5 oder R6 verwendest und dann denke ich das du etwas "Entwickels" oder?  ???  ;)
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #5 am: 27.07.05 - 12:04:12 »
soll ich das dann nochmal unter Entwicklung eintragen ?

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JAVA DocumentCollection Class
« Antwort #6 am: 27.07.05 - 12:19:01 »
mal zur Thematik:

Du mußt beim aufruf von dc.getNextDocument() wie auch in LS das aktuelle Dokument als Argument übergeben.

Thomas
+++To be human is more important than to be important!+++

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: JAVA DocumentCollection Class
« Antwort #7 am: 27.07.05 - 12:25:11 »
mal zur Thematik:

Du mußt beim aufruf von dc.getNextDocument() wie auch in LS das aktuelle Dokument als Argument übergeben.

Thomas

das ist nicht richtig. Ein parameterloser Aufruf geht auch und ist dem mit Parameter sogar vorzuziehen.
Was tut denn der Agent, wenn er keine Dokumente bearbeitet? Interessant wäre zu wissen, wie der Verlauf der Abarbeitung ist. Wird eine Exception geworfen? Sind in der DocumentCollection Dokumente? etc?
« Letzte Änderung: 27.07.05 - 12:26:45 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JAVA DocumentCollection Class
« Antwort #8 am: 27.07.05 - 12:38:27 »
stimmt auffallend, Hilfe lesen hilft eben manchmal  ;D
+++To be human is more important than to be important!+++

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #9 am: 27.07.05 - 14:07:28 »
Wahrscheinlich geht er gar nicht in die while-Schleife, da der Agent relativ schnell beendet wird. Kann man sich eigentlich wie im JavaScript ein "Alert"-Fenster ausgeben lassen ?

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: JAVA DocumentCollection Class
« Antwort #10 am: 27.07.05 - 14:11:33 »
ja, mit System.out.print() kannst du auf die Konsole schreiben.

Oder die Log-Klasse verwenden.

Oder Eclipse als IDE verwenden
Using Lotus Notes with Eclipse to manage and run your Java programs
dann kannst du richtig debuggen
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #11 am: 28.07.05 - 10:19:20 »
ja, mit System.out.print() kannst du auf die Konsole schreiben.

Oder die Log-Klasse verwenden.

Oder Eclipse als IDE verwenden
Using Lotus Notes with Eclipse to manage and run your Java programs
dann kannst du richtig debuggen


In dem IBM-Link ist beschrieben wie man Lotus/Domino 6 das Debuggen. Geht  das Debuggen auch mit R5 ?

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JAVA DocumentCollection Class
« Antwort #12 am: 28.07.05 - 10:25:53 »
Ich vermute nein. Aber du kannst es ja mal ausprobieren.
Eine Alternative wäre noch, den Agenten in Eclipse als Standard Java Anwendung zu schreiben, die von aussen auf Notes zugreift und dann später daraus einen Agenten machen. Hab ich auch schon mal gemacht. Ist aber nicht so das gelbe.
« Letzte Änderung: 28.07.05 - 10:29:18 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #13 am: 28.07.05 - 14:19:48 »
ja, mit System.out.print() kannst du auf die Konsole schreiben.

Oder die Log-Klasse verwenden.

dann kannst du richtig debuggen
Zitat


Wie nutzt man diese Log-Klasse genau, ich habe schon FileLog und NotesLog probiert, aber es ist nix 'rausgekommen :

Log log = session.createLog("debug");
log.openFileLog("log.txt");
// log.openNotesLog(null, "agentlog.nsf");
log.logAction("vor");


         // (Fügen Sie Ihren Code hier ein)
      Database db = agentContext.getCurrentDatabase();
      DocumentCollection dc = db.getAllDocuments();
      Document docCur = dc.getFirstDocument();
     
      // docCur = agentContext.getDocumentContext();


// System.out.print("vor");   
      while (docCur != null) {
// System.out.print("in");      
log.logAction("in");   
         // Vector Artist = docCur.getItemValue("Artist");
         // Vector NewArtist = docCur.getItemValue("NewArtist");
         Item NA = docCur.getFirstItem("Artist");
         NA.setSummary(true);
               RichTextItem NARich = (RichTextItem)docCur.getFirstItem("Artist");
         // String OA = Artist.toString();
          NA.setValueString(NARich.getFormattedText(false,0,0));
         // docCur.replaceItemValue("NewArtist","XTESTX");
         docCur.copyItem(NA,"CopyArtist");
               // Item akt = docCur.getFirstItem("ChangeDate");
               // DateTime dat = agentContext.getLastRun();
               // dat.setNow();
               // akt.setDateTimeValue(dat);
               // docCur.copyItem(akt,"$Revisions");
               // Item CA = docCur.getFirstItem("CopyArtist");               
               // View ansicht = docCur.getParentView();
               // agentContext.updateProcessedDoc(docCur);               
               docCur.save();
               
               docCur = dc.getNextDocument();
               
           } 
           dc.updateAll();
           // ansicht.refresh();
log.close();    
                     

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: JAVA DocumentCollection Class
« Antwort #14 am: 28.07.05 - 14:30:12 »
log.openFileLog("log.txt");

Hast du schon mal hier wie gefordert einen Pfad + Dateinamen angegeben?

aus der Hilfe:
The path and file name of the log file. If the file does not exist, the method creates it for you. If a directory in the path does not exist, the method throws an exception.

Vermutlich wird da eine Exception geworfen. Riskiere auch mal einen Blick auf die Java-Debug Konsole (Datei->Extras->Java Debug Konsole)
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #15 am: 28.07.05 - 16:30:27 »
Jetzt klappt es mit dem Logfile, Danke !

Der Agent scheint immer zu enden, wenn Methoden vom Item-Objekt "NA" aufgerufen werden. Erst war es bei "NA.setSummary(true);", dann habe ich das testweise 'rausgenommen, und er endet bei "NA.setValueString(NARich.getFormattedText(false,0,0));".
Gibt es Probleme bei der Item-Klasse in Verbindung mit  der DocumentCollection-Klasse ?

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: JAVA DocumentCollection Class
« Antwort #16 am: 28.07.05 - 16:43:21 »
mach doch mal einen try-catch-finally-Block rein und schreib die Exception ins log

in etwa so:

try {
  //dein kritisches Zeuch
} catch (Exception e) {
  log.logError(0, e.getStacktrace());
} finally {
  log.close();
}
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #17 am: 29.07.05 - 12:26:10 »
immer wenn ich eine log-methode in "catch {}" anspreche bekomme ich folgende Meldung : JavaAgent java:83: Exception lotus.domino.NotesException must be caught, or it must be declared in the throws clause of this method

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: JAVA DocumentCollection Class
« Antwort #18 am: 29.07.05 - 13:28:39 »
echt sorry, aber ich kann dir nur den Tipp geben, dich mit den Elementen der Sprache (in diesem Fall Java) vetraut zu machen, wenn du sie verwendest.
Alles andere führt imho nicht zum Ziel.

Evtl. hast du Glück und Axel aka kennwort fka Marinero ist in der Stimmung hier einen Java Grundkurs zu geben.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline fraernst

  • Frischling
  • *
  • Beiträge: 12
Re: JAVA DocumentCollection Class
« Antwort #19 am: 29.07.05 - 15:11:59 »
Einen Notes-Kurs brauchte ich wohl auch.  Nach meinem Verständnis , wenn man im Geltungsbereich des Agenten "für alle Dokumente" auswählt, brauchte man in Java gar nicht DocumentCollection Class und die whlie-Schleife, sondern für jedes Dokument müsste das Java-Programm einmal durchlaufen werden. Das hab' ich ausprobiert, funktioniert aber leider nicht.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz