Page 1 sur 1

[Résolu]Erreur agent JAVA

MessagePublié: 07 Fév 2014 à 11:00
par mike76
Serveur 8.5.3 FP3

Bonjour,

J'ai développé un agent en JAVA. Je suis novice car nettement plus habitué au lotus script
Code : Tout sélectionner
import lotus.domino.*;

public class JavaAgent extends AgentBase {   
   public void NotesMain() {      
      try {
          Session session = getSession();       
           Database db = session.getCurrentDatabase();
         View viewPanierBloque = db.getView("MA_VUE");

          Document docPanierBloque = viewPanierBloque.getDocumentByKey("test",true);

      } catch(Exception e) {
         e.printStackTrace();
         
         if(docPanierBloque!=null){
            
         }
      }
   }
}



J'obtiens l'erreur "docPanierBloque ne peut pas être résolu" sur cette ligne :
Code : Tout sélectionner
if(docPanierBloque!=null)


En fait, je souhaite que si mon code se passe mal, je fais une action sur ce document docPanierBloque.
Je pense que c'est dû au fait que docPanierBloque est défini dans le bloc try et dans catch JAVA ne le connait pas ??

Pourriez-vous m'aider à corriger cette erreur ?
Merci !

Re: Erreur agent JAVA

MessagePublié: 07 Fév 2014 à 14:12
par amahi
Salut, C'est un problème de porté.
Ta variable docPanierBloque est defini dans les accolades du try. Elle n'est plus connue dans ton catch. Essaye comme ca:

Code : Tout sélectionner
public class JavaAgent extends AgentBase {   
   public void NotesMain() {
      Document docPanierBloque;     
      try {
          Session session = getSession();       
           Database db = session.getCurrentDatabase();
         View viewPanierBloque = db.getView("MA_VUE");

           docPanierBloque = viewPanierBloque.getDocumentByKey("test",true);

      } catch(Exception e) {
         e.printStackTrace();
         
         if(docPanierBloque!=null){
           
         }
      }
   }
}


Re: Erreur agent JAVA

MessagePublié: 07 Fév 2014 à 14:29
par mike76
Merci Ahmed pour ton aide.

J'ai fait comme tu m'as dit.
Document docPanierBloque;

Java m'indiquait alors "La variable locale docPanierBloque n'a peut-être pas été initialisée".

J'ai donc mis :
Code : Tout sélectionner
Document docPanierBloque=null;


Là plus d'erreur, sauf que maintenant j'ai ajouté maintenant dans mon catch :
Code : Tout sélectionner
if(docPanierBloque!=null){
   docPanierBloque.removePermanently(true);
}


Et là nouveau message d'erreur sur la ligne docPanierBloque.removePermanently(true);

Type d'exception NotesException non gérée

Re: Erreur agent JAVA

MessagePublié: 08 Fév 2014 à 19:11
par amahi
normal dans ton catch tu n'est pas dans un bloc try, il faut donc ajouter
Code : Tout sélectionner
catch(Exception e) {
           try {
              if(docPanierBloque!=null){
                   docPanierBloque.removePermanently(true);
              }
           } catch(Excpetion ex) {
          //
          }
}

Re: Erreur agent JAVA

MessagePublié: 09 Fév 2014 à 19:24
par Jérôme Deniau
ce serait pas plutôt le getview qu'il faudrait aussi tester le "_" c'est un raccourci pour les menus des vues sur un client Lotus, mais le nom de la vue c'est MAVUE ou "MA VUE" mais pas "MA_VUE".....

Re: Erreur agent JAVA

MessagePublié: 10 Fév 2014 à 16:38
par mike76
salut Jérôme,

j'ai mis un nom de vue bidon pour l'exemple.

si je fais le code ci-dessous j'obtiens la même erreur :

Code : Tout sélectionner
import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {
          Document docPanierBloque;
            
             try {
                 Session session = getSession();       
                  Database db = session.getCurrentDatabase();
                  docPanierBloque = db.getDocumentByUNID("xxxxxxxx");

             } catch(Exception e) {
                e.printStackTrace();
                
                if(docPanierBloque!=null){
                  
                }
             }
       }
   }

Re: Erreur agent JAVA

MessagePublié: 10 Fév 2014 à 16:50
par Michael DELIQUE
salut

essais en gérant l'exption pour les document notes. je ne sais plus comment on fait...
mais ça donne un truc du genre

} catch(DocException de) {

} catch(Exception e) {

}

Re: Erreur agent JAVA

MessagePublié: 10 Fév 2014 à 17:08
par mike76
salut

alors là je ne connais pas trop comment ça fonctionne car comme je le disais je suis novice en java
s'il y a quelqu'un qui pouvait nous répondre comment faire ce genre de chose
merci

Re: Erreur agent JAVA

MessagePublié: 13 Fév 2014 à 11:04
par mike76
Michaël,

J'ai trouvé ce code dans l'aide :
Code : Tout sélectionner
public class JavaAgent extends AgentBase {
  public void NotesMain() {
    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here)
      Agent agent = agentContext.getCurrentAgent();

      if (agent.getComment().equals(""))
        throw new NotesException(NotesError.NOTES_ERR_ERROR,
        "No agent comment");
      DbDirectory dir = session.getDbDirectory(null);

      Database db = dir.openDatabase(agent.getComment());

      System.out.println("Title:\t" + db.getTitle());       

    } catch(NotesException e) {

      System.out.println(e.id + " " + e.text);

    } catch(Exception e) {

      e.printStackTrace();

    }

  }

}


Cela ressemble à ce que tu m'as dit.
Je vais essayer d'implémenter ça !!

Re: Erreur agent JAVA

MessagePublié: 15 Fév 2014 à 16:11
par amahi
L'erreur est clair, as tu testé ma deuxieme réponse?

Re: Erreur agent JAVA

MessagePublié: 17 Fév 2014 à 09:32
par mike76
désolé Ahmed je n'avais pas vu ta seconde réponse :oops:
je teste dans la journée je te dis ça
merci encore pour ton aide

Re: Erreur agent JAVA

MessagePublié: 17 Fév 2014 à 10:35
par mike76
:D Nettement mieux Ahmed !!
Un grand merci pour ton aide !