Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: JD am 14.11.02 - 12:57:38

Titel: Java Agent funzt nicht
Beitrag von: JD am 14.11.02 - 12:57:38
Hallo alle, sieht jemand vielleicht den Fehler in meinem Agenten??

Er soll alle Dokumente einer Datenbank neu speichern, zwecks neuer Felder in der Maske, die die alten Docs noch nicht enthalten.

Code

import lotus.domino.*;

public class JavaAgent extends AgentBase {

   public void NotesMain() {

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

           Database database = agentContext.getCurrentDatabase();
               DocumentCollection docCollection = database.getAllDocuments();
               Document doc = docCollection.getFirstDocument();
               
               while (doc != null) {
                  doc.save();
                    System.out.println("Doc saved");
                    doc = docCollection.getNextDocument(doc);
               }
               
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

Danke schonmal im voraus
Titel: Re:Java Agent funzt nicht
Beitrag von: Performance am 14.11.02 - 13:49:04
Ich dachte auch das die doks gespeichert werden, wenn im dok nichts geändert wird, geht in Skript aber nicht mit Java.
Wenn du aber Felder im Dok veränderst funktioniert das einwandfrei.


cu
 
Titel: Re:Java Agent funzt nicht
Beitrag von: JD am 14.11.02 - 13:54:59
Hmmm also bezieht die Javaklasse die Maske nicht mit ein oder wie??? ???

Hast Du ne Idee wie ich das trotzdem machen kann? Also das doc erneuern nachdem ich in der Maske was geändert habe??? Ausser manuell jetzt ;)

Muss ich vielleicht die Feldwerte alle auslesn und zurückschreiben oder ???
Titel: Re:Java Agent funzt nicht
Beitrag von: Performance am 14.11.02 - 14:14:04
sorry hab da was falsch verstanden .

sollte gehen mit:    
doc.computeWithForm(false, false);
doc.save(true, false);

genau so wie in Skript.


cu
Titel: Re:Java Agent funzt nicht
Beitrag von: JD am 14.11.02 - 14:30:07
Dankeeeeeee  ;D ;D ;D ;D

das funzt sehr gut!!!!!

Aber warum findet man diese Methode mit der Form nicht so ohne weiteres in der Klassenreferenz *brrrrrrr* Naja, jetzt weiss ich ja wie die Methode heisst dank Dir  :-*

Anbei komme mir schon echt blöde vor, aber wo ist denn die Standardausgabe bei Notes, d.h. wenn ich jetzt nen Agent im Client ausführe und im Code sowas wie System.out.println() habe, wo tauchen die Ausgaben eigentlich auf???? Kann man da irgendein Fenster aufmachen oder so???

Titel: Re:Java Agent funzt nicht
Beitrag von: tower am 14.11.02 - 14:52:33
na in der Java-Konsole

File\Tools\Show Java Debug Console

Gruß
Titel: Re:Java Agent funzt nicht
Beitrag von: JD am 14.11.02 - 15:00:09
Aja danke, dann sollte man wohl andere Wege und Mittel finden um dem normalen User Informationen zukomen zulassen, richtig?

Also irgendwie modaler, man kann ja von den seltensten Usern verlangen eine JavaDebugkonsole zu öffnen um "normale" Informationen zu bekommen. AWT & SWING oder gibt es Methoden die z.B. die Statuszeile ändern können wie bei Lotusscript?
Titel: Re:Java Agent funzt nicht
Beitrag von: Performance am 14.11.02 - 15:19:55
und die Klassenreferenz siehst du wenn du im designer den Tab Reiter Reference anklickst und dann NOTES JAVA anklickst (ich vermute du hast im Core Java gesucht )
In der Document Schnittstelle gibt es die Methode computewiothform()


Du musst halt gucken was im Code ganz oben steht:
import  lotus.domino.*
d.h. alles was drunter liegt im Verzeichnisbaum kann dann verwendet werden.


cu