Obtenir toutes les entrées d'agenda pour une date donnée à l'aide de Notes.jar

StackOverflow https://stackoverflow.com/questions/1438665

  •  08-07-2019
  •  | 
  •  

Question

Je travaille sur un code Java simple pour extraire toutes les entrées de calendrier pour une date donnée. Je sais qu’il est possible d’utiliser Domingo, mais j’aimerais utiliser uniquement Notes.jar à cette fin. Il est possible pour moi de créer une session basée sur des informations d'identification données et d'obtenir l'objet calendrier. Je cherche à extraire la session Notes en cours et à utiliser cet objet de session pour ouvrir la vue du calendrier dans le fichier courrier et commencer à la lire. Mais je ne parviens pas à le faire fonctionner. Quelqu'un a une idée ou des liens à ce sujet?

Était-ce utile?

La solution

Eh bien, j'en ai fini avec l'API de notes par défaut et voici le code.

NotesAPITest nat = new NotesAPITest();
        NotesThread.sinitThread();

        Session sess1 = NotesFactory.createSession();
        System.out.println(sess1.getUserName());
        Database database = sess1.getDatabase("", "mailfile");
        View calendarView = database.getView("($Calendar)");
        DateTime dt = sess1.createDateTime("today");
        ViewEntryCollection vec = calendarView.getAllEntriesByKey(dt, true);

        ViewEntry entry = vec.getFirstEntry();
         while (entry != null) 
         {

           Document caldoc = entry.getDocument();

           System.out.println("Subject: " + caldoc.getItemValueString("Subject"));
           System.out.println("Chair Person: " + caldoc.getItemValueString("Chair"));
           System.out.println("Start Time: " + nat.getStartEndTimes(caldoc, "StartDateTime") );
           System.out.println("Start Time: " + nat.getStartEndTimes(caldoc, "EndDateTime") );
           System.out.println("Required: " + caldoc.getItemValueString("RequiredAttendees"));
           entry = vec.getNextEntry(); 
         }  

Le seul inconvénient que je vois est que, chaque fois que la session est extraite, une boîte de dialogue contenant un mot de passe apparaît. Dans mes recherches jusqu'à présent, je n'ai pas trouvé de solution pour cela. Apparemment, un arrangement de sécurité dans LN je suppose.

Autres conseils

Rien qu'en googlant, j'ai trouvé cet article . . Ils y créent un plugin Eclispe pour Notes. Et l'exemple de code permettant d'obtenir les jours d'affaires des employés est également là (je suppose que Calendar fonctionne de manière similaire):

    s = NotesFactory.createSession();

    // Get the local address book
    Database nab = s.getDatabase("",s.getAddressBooks().elementAt(0).toString());
    if (nab.isOpen() == false) nab.open();  

    // Get the Birthdays & Anniversaries view           
    View baview = nab.getView("BA");
    ViewEntryCollection eba = baview.getAllEntries();
    ViewEntry entry = eba.getFirstEntry();

    list = new String[eba.getCount()];
    int count = 0;

    while (entry != null) {

        Vector vals = entry.getColumnValues();                           
        list[count]= vals.elementAt(1).toString() + " " + vals.elementAt(2).toString();                         
        entry = eba.getNextEntry();
        count++;
    }

MODIFIER : consultez également ce lien pour obtenir de la documentation sur Notes.jar.

La méthode NotesFactory.createSession () est ce que vous pouvez utiliser pour obtenir un descripteur de la session en cours. Notes partagera automatiquement la session du client en cours. Si cette méthode échoue, il peut y avoir un problème avec votre configuration de base. Assurez-vous que:

  • Le client Notes est entièrement installé sur la machine exécutant l'application Java et assurez-vous qu'il existe un fichier ID Notes valide. (Par exemple, assurez-vous que vous pouvez ouvrir le client Notes sur cette machine avec succès).
  • Assurez-vous également que le fichier nnotes.dll est accessible sur le chemin de votre ordinateur (différent de Java CLASSPATH).
  • Et confirmez que le fichier Notes.ini se trouve également sur le chemin d'accès de l'ordinateur.

@vikramjb, essayez d'utiliser NotesFactory.createSession ((String) null, (String) null, mot de passe); pour empêcher le menu contextuel des notes de vous avertir chaque fois que vous faites quelque chose avec la session qui a besoin de sécurité.

Découvrez ces informations à partir d'ici: http://lekkimworld.com/2006/ 07/10 / java_in_notes_domino_explained_domino_session_tester.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top