Problème agent java, le html ne s'affiche plus

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Problème agent java, le html ne s'affiche plus

Messagepar kelaan » 10 Jan 2011 à 10:26

Bonjour,
Voilà j'ai fait un agent java qui s'exécute à l'ouverture d'un masque. Dans le masque j'y est mis un RichText et grâce à appendstyle, je peux y insérer du html.
Mais bizarrement ça ne marche plus, j'ai du faire une erreur quelques part, mais je n'arrive pas à la trouver.

Voilà le code:


Code : Tout sélectionner
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
         
          String serveur = "********";
          String base = "**********";
         
         
          Document   adoc;
          // (Your code goes here)
         
          adoc = agentContext.getDocumentContext();
         
          adoc.replaceItemValue("nom", "titi");
         
          RichTextItem  richtext;
         
          //richtext = (RichTextItem)adoc.getFirstItem("body");
          // richtext = adoc.createRichTextItem("body");
         
             richtext = (RichTextItem)adoc.getFirstItem("body");
              richtext.addNewLine();
              richtext.appendText("tutu");
              RichTextStyle style = session.createRichTextStyle();
              style.setPassThruHTML(RichTextStyle.YES);
              richtext.appendStyle(style);
              richtext.appendText("<style>");
              richtext.appendText("table { border : medium solid #000000; width : 80%;}");
              richtext.appendText("td,th { border : thin solid  #6495ed; width: 10%; }");
              richtext.appendText("</style><table>");
              richtext.appendText("<th>Horaires</th><th>Lundi</th><th>Mardi</th><th>Mercredi</th>");
              richtext.appendText("<th>Jeudi</th><th>Vendredi</th><th>Samedi</th>");
              richtext.appendText("<tr><td> 9 H <br> 10 H <br> 11 H <br> 12 H <br> </td>");
              richtext.appendText("<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>");
              richtext.appendText("<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr>");
              richtext.appendText("<td> 14 H <br> 15 H <br> 16 H <br> 17 H <br> 18 H <br> </td>");
              richtext.appendText("<td> &nbsp; </td><td> &nbsp;</td>");
              richtext.appendText("<td> &nbsp; </td> <td> &nbsp;</td>");
              richtext.appendText("<td> &nbsp; </td> <td> &nbsp; </td> </tr></table>");
             

         
              Database db = session.getDatabase(serveur,base);
              View premvue = db.getView("People");
             
              Document recherche = premvue.getFirstDocument();
              String tabutil [] = new String [1000];
              int i = 0;
              String Add;
              String Service;
             
              System.out.println("bonjour !");
             
                
                
              while (recherche != null) {
                
                
                    Add = recherche.getItemValueString("MailFile");
                    Service = recherche.getItemValueString("MailSystem");
                   
                   
                   
                   
                if ((Add.indexOf("mail") > -1) && Service.equals("1")) {
                      
                      
                      
                      
                       tabutil[i] = Add;
                      
                    }
                   
                    i = i + 1;   
                     recherche = premvue.getNextDocument(recherche);
                    
              }
                   
                       
             
                
                
              for (i = 0; i <tabutil> -1 ) {
                   
                    Db = session.getDatabase(serveur,tabutil[i]);
                 }
                 else {
                     Db = session.getDatabase(serveur,tabutil[i]+".nsf");
                 }
                
                
                 vueacces = Db.getView("calendar");
                
                 System.out.println("On a réussit à ouvrir le calendrier "+ tabutil[i]);
                 }
                
                 catch(Exception e){
                   
                    continue;
                 }
                
                
                 Document docc =  vueacces.getFirstDocument();
                 while (docc != null) {
                   
                   
                    try{
                      
                    Vector datefin = docc.getItemValueDateTimeArray("EndDate");
                    DateTime dateagenda = (DateTime)datefin.get(0);
                    Date date = new Date();
                    SimpleDateFormat recupannee = new SimpleDateFormat("yyyy");
                    String anneeactuelle = recupannee.format(date);
                    String anneeagenda = dateagenda.toString();
                    anneeagenda = anneeagenda.substring(6,10);
                   
                   
                    int anactu = Integer.parseInt(anneeactuelle);
                    int anagenda = Integer.parseInt(anneeagenda);
                   
                   
                   
                    if (anactu < anagenda) {
                   
                      
                   
                   
                     System.out.println(docc.getItemValueDateTimeArray("StartDate"));
                      System.out.println(docc.getItemValueDateTimeArray("EndDate"));
                      System.out.println(docc.getItemValueDateTimeArray("StartTime"));
                      System.out.println(docc.getItemValueDateTimeArray("EndTime"));
                      System.out.println(docc.getItemValueString("Subject"));
                     
                       }
                    }
                      
                       catch(Exception e){
                           
                           
                         }
                     
                   
                      docc = vueacces.getNextDocument(docc);
              }
                 }

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


Merci d'avance pour votre aide =)
Dernière édition par kelaan le 10 Jan 2011 à 10:52, édité 4 fois.
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar Michael DELIQUE » 10 Jan 2011 à 10:32

salut

évite de laisser le nom du serveur en claire dans ton code. ça ne nous dérange pas, mais ton patron risque de ne pas aimer !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar kelaan » 10 Jan 2011 à 10:36

Oups, j'ai pas fait gaffe, en plus je suis stagiaire ^^
Merci beaucoup =)
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar Michael DELIQUE » 10 Jan 2011 à 10:38

d'une manière générale :

on ne met Jamais ce genre d'information en DURE dans le Code. parceque si jamais tu change de serveur ton code est mort et tu dois tout te le repalucher. au pire du pire tu met le nom de ton serveur dans une constante comme ça en cas de changement, tu ne le change qu'a un seul endroit.

toujours penser à la maintenance et au faite qu'aucune données n'est inscrit dans le marbre.

généralement on remplace le nom du serveur par "MonServeur" et celui de la base par "MaBase" histoire que le lecteur sache de quoi il s'agit
Dernière édition par Michael DELIQUE le 10 Jan 2011 à 10:40, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar kelaan » 10 Jan 2011 à 10:39

Ok je vais faire ça.
J'y avais pas pensé, j'avoue, alors que c'est important en plus.
Merci =)
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar amahi » 10 Jan 2011 à 11:07

Bonjour

Quel est le lien entre la partie richText et la suite (avec la recherche dans une vue??)
Ton erreur vient de la confusion entre uidocument et document, le uidocument n'existe pas en java. C'est normal que ton champ ne soit pas modifié.

Et sinon, par convention, evite les majuscule comme premiere lettre de variable, reserve ça au nom de la classe pour eviter les confusions.
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar kelaan » 10 Jan 2011 à 11:14

Bonjour,

Merci de m'aider.

La suite n'est pas encore totalement codée en fait, après je dois mettre en relation mon calendrier et les récupération de données pour les mettre dans des divs de calendriers.

Par exemple, je récupère les informations d'un agenda d'un utilisateur et je vois qu'il est en réunion de 8h à 9h; je dois alors faire une div de couleur qui va prendre la place dans le calendrier html de 8h à 9h. J'espère avoir réussie à me faire comprendre, même si moi même je vois pas encore trop comment je vais coder ça, j'arrive à faire le calendrier, j'arrive à récupérer les données, mais mettre en relation...

Parcontre, désolé si je paraît inculte.. Mais c'est quoi uidocument?

Ok pour les conventions je vais changer ça.
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar Michael DELIQUE » 10 Jan 2011 à 11:19

salut

tu ne connais pas la class NotesUIDocument en Lotus Script ?

NotesUIDocument représente le document affiché a l'écran.
NotesDocument représente le document en mémoire/sur le disque.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar kelaan » 10 Jan 2011 à 11:23

Ok ! Merci pour l'explication. En fait ça fait une semaine que je suis en stage, et j'apprends à connaître lotus notes par mes 'propres' moyens, mon tuteur est très occupé et je veux pas trop le déranger. Donc c'est une grande nouveauté pour moi, d'habitude je travaille sur C#, passer sur Java ça peut encore aller, mais Lotus Notes, c'est hard pour moi mais je me dégonfle pas. :D

En tout cas merci de m'aider. Mais cependant, j'arrive bien à récupérer le document donc je vois pas le problème d'UIdocument comme vous dîtes. Dans mon RichText au lieu d'avoir le calendrier, j'ai juste le code html en fait. Donc j'arrive bien à écrire dedans.
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar Michael DELIQUE » 10 Jan 2011 à 11:26

ton agent est lancé comment ?

il traite les documents sélectionnés ?

tu es en dev web ou client lourd ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar amahi » 10 Jan 2011 à 11:27

Ton soucis c'est que tu travail au niveau de la ram lorsque tu modifie ton richtext. A aucun moment tes modifs ne sont sauvegardés.
En fait c'est un problème de conception. A quoi te sert ton masque? Pourquoi lance tu un agent a son ouveture? Pourquoi ne pas lancer directement l'agent? Quel interet d'ecrire dans ton champ puisque tu ne sauvegarde pas son contenu?
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar kelaan » 10 Jan 2011 à 11:47

Alors, alors,

Mon agent est lancé à l'ouverture du masque. Le masque sert à afficher mon calendrier, c'est mon tuteur qui me l'a fait en me disant que ce sera plus facile de faire tout à l'intérieur d'un masque.

En revanche, je sais pas si l'histoire de la sauvegarde est réglée, car au départ je n'arrivait pas à écrire du texte dans le richtext du masque, le appendText ne fonctionnait pas, un développeur m'a alors rajouté un bouton dans le masque et il a ajouté cette commande au bouton: @Command([FileSave])

Donc je suppose que cela le sauvegarde?
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Messagepar Michael DELIQUE » 10 Jan 2011 à 11:48

oui !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar amahi » 10 Jan 2011 à 12:09

Oui mais non...
Tu modifie ton doc en arriere plan au moment de l'ouverture.
Quand tu sauvegarde, tu sauvegardes ton document a l'ecran, donc tu perds les modifs creer en arriere plan.
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar kelaan » 10 Jan 2011 à 12:12

Je dois faire comment alors? Je dois sauvegarder mon document autre part?
kelaan
Premier posts
Premier posts
 
Message(s) : 15
Inscrit(e) le : 10 Jan 2011 à 10:23

Suivant

Retour vers Développement