[Résolu]Erreur agent JAVA

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

[Résolu]Erreur agent JAVA

Messagepar mike76 » 07 Fév 2014 à 11:00

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 !
Dernière édition par mike76 le 17 Fév 2014 à 10:36, édité 1 fois.
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar amahi » 07 Fév 2014 à 14:12

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){
           
         }
      }
   }
}

@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Re: Erreur agent JAVA

Messagepar mike76 » 07 Fév 2014 à 14:29

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
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar amahi » 08 Fév 2014 à 19:11

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) {
          //
          }
}
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Re: Erreur agent JAVA

Messagepar Jérôme Deniau » 09 Fév 2014 à 19:24

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".....
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Erreur agent JAVA

Messagepar mike76 » 10 Fév 2014 à 16:38

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){
                  
                }
             }
       }
   }
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar Michael DELIQUE » 10 Fév 2014 à 16:50

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) {

}
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

Re: Erreur agent JAVA

Messagepar mike76 » 10 Fév 2014 à 17:08

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
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar mike76 » 13 Fév 2014 à 11:04

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 !!
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar amahi » 15 Fév 2014 à 16:11

L'erreur est clair, as tu testé ma deuxieme réponse?
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Re: Erreur agent JAVA

Messagepar mike76 » 17 Fév 2014 à 09:32

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
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Re: Erreur agent JAVA

Messagepar mike76 » 17 Fév 2014 à 10:35

:D Nettement mieux Ahmed !!
Un grand merci pour ton aide !
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN


Retour vers Développement

cron