notes.jar를 사용하여 주어진 날짜에 대한 모든 달력 항목을 받으십시오.

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

  •  08-07-2019
  •  | 
  •  

문제

주어진 날짜에 대한 모든 달력 항목을 추출하기 위해 간단한 Java 코드를 작업 중입니다. Domingo를 사용하는 것이 가능하다는 것을 알고 있지만이 목적을 위해 Notes.jar 만 사용하고 싶습니다. 주어진 자격 증명을 기반으로 세션을 만들고 캘린더 개체를 얻을 수 있습니다. 현재 실행중인 노트 세션을 추출하고 해당 세션 객체를 사용하여 메일 파일에서 캘린더보기를 열고 재생을 시작하려고합니다. 그러나 나는 그것을 작동시킬 수 없습니다. 누구든지 이것에 대한 아이디어 나 링크가 있습니까?

도움이 되었습니까?

해결책

글쎄, 나는 기본 메모 API를 수행했으며 여기에 코드가 있습니다.

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(); 
         }  

내가 보는 유일한 단점은 세션이 추출 될 때마다 비밀번호 대화 상자를 나타냅니다. 지금까지 내 검색에서 나는 그것에 대한 해결책을 보지 못했습니다. 분명히 LN의 보안 계약.

다른 팁

인터넷 검색을 통해 나는 찾았다 이 기사. 그들은 노트를 위해 eclispe 플러그인을 만듭니다. 그리고 직원 Brithdays를 얻는 예제 코드도 있습니다 (캘린더가 비슷한 방식으로 작동한다고 생각합니다).

    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++;
    }

편집하다: 또한 봐 이 링크 notes.jar에 대한 문서.

NotesCatory.createsession () 메소드는 현재 세션을 처리하는 데 사용할 수있는 것입니다. 참고는 현재 클라이언트 세션을 자동으로 공유합니다. 이 메소드가 실패하면 기본 구성에 문제가있을 수 있습니다. 확인하십시오 :

  • Java 앱을 실행하는 컴퓨터에 메모 클라이언트가 완전히 설치되어 있으며 유효한 메모 ID 파일이 있는지 확인하십시오. (예를 들어,이 컴퓨터에서 노트 클라이언트를 성공적으로 열 수 있는지 확인하십시오).
  • 또한 NNOTES.DLL 파일이 기계의 경로에서 액세스 할 수 있는지 확인하십시오 (Java ClassPath와는 다름).
  • 그리고 Notes.ini 파일이 기계의 경로에 있음을 확인하십시오.

@vikramjb, notectory.createsession ((string) null, (string) null, password)를 시도해보십시오. 노트 비밀번호 팝업이 보안이 필요한 세션을 수행 할 때마다 촉구되는 것을 방지합니다.

여기에서 이것에 대해 알게되었습니다. http://lekkimworld.com/2006/07/10/java_in_notes_notes_domino_explained_domino_session_tester.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top