2012-08-27 52 views
3

我需要創建一個約會(日曆條目)並自動將其分發給特定的被邀請者。以編程方式爲蓮花筆記創建約會

我有兩個問題,現在:

1)日曆條目沒有在日曆上的椅子出現。我通過添加椅子作爲必需的與會者,向他們發送通知以確認,但我想知道如何自動添加它。

2)受邀者正在發送邀請,但他們無法確認。 Lotus拋出一個錯誤,說他們無法處理邀請,因爲它們的郵件文件中不存在even。

我的代碼是在Java中,但我可以端口的LotusScript或公式如果需要的話。我只需要讓它工作。

import java.util.GregorianCalendar; 

import lotus.domino.AgentBase; 
import lotus.domino.Database; 
import lotus.domino.Document; 
import lotus.domino.Session; 

public class JavaAgent extends AgentBase { 

    public void NotesMain() { 

     try { 
      Session s = getSession(); 
      Database db = s.getDatabase("server", "maildatabase.nsf", false); 
      String user = s.getUserName(); 

      Document doc = db.createDocument(); 
      doc.replaceItemValue("Form", "Appointment"); 
      doc.replaceItemValue("AppointmentType", "3"); 
      doc.replaceItemValue("$PublicAccess", "1"); 

      doc.replaceItemValue("Subject", "New Meeting"); 
      doc.replaceItemValue("CALENDARDATETIME", s.createDateTime(new GregorianCalendar(2012, 7, 24, 9, 0)).getLocalTime()); 
      doc.replaceItemValue("Body", "an invitation"); 

      doc.replaceItemValue("StartDate", s.createDateTime("08/24/2012").getLocalTime()); 
      doc.replaceItemValue("EndDate", s.createDateTime("08/24/2012").getLocalTime()); 
      doc.replaceItemValue("StartTime", s.createDateTime("09:00:00 AM").getLocalTime()); 
      doc.replaceItemValue("EndTime", s.createDateTime("10:00:00 AM").getLocalTime()); 
      doc.replaceItemValue("StartDateTime", s.createDateTime(new GregorianCalendar(2012, 7, 24, 9, 0))); 
      doc.replaceItemValue("EndDateTime", s.createDateTime(new GregorianCalendar(2012, 7, 24, 10, 0))); 

      doc.replaceItemValue("RequiredAttendees", "Invitee/company"); 
      doc.appendItemValue("RequiredAttendees",user); 

      doc.replaceItemValue("SendTo", "Invitee/company"); 
      doc.appendItemValue("SendTo",user); 
      doc.replaceItemValue("EnterSendTo", "Invitee/company"); 
      doc.appendItemValue("EnterSendTo",user); 
      doc.replaceItemValue("From", user); 
      doc.replaceItemValue("Principal",user); 
      doc.replaceItemValue("Chair", user); 
      doc.replaceItemValue("Location", "location test"); 


      doc.computeWithForm(true, false); 
      doc.save(true,false,false); 

      String sendTo = doc.getItemValueString("SendTo"); 
      doc.send(false, sendTo); 

     } catch(Exception e) { 
      System.out.print(e.getMessage()); 
     } 
    } 
} 

任何幫助表示讚賞。謝謝。

回答

1

我終於實現了這一點。它強制用戶設置日期並手動發送邀請,但它是我能得到的最接近的。我無法使用iCal附件,因爲我需要每個人都參與相同的事件以進行重新計劃。

@Command([Compose];"" : "mailfile.nsf";"Calendar Entry"); 
    @PostedCommand([EditGotoField];"Subject"); 
    @PostedCommand([EditInsertText]; "Title"); 
    @PostedCommand([EditGotoField];"EnterSendTo"); 
    @PostedCommand([EditInsertText]; "Bob Test"); 
    @PostedCommand([EditGotoField];"Location"); 
    @PostedCommand([EditInsertText]; "Location"); 
    @PostedCommand([EditGotoField];"StartTime"); 
    @PostedCommand([EditInsertText]; @Text(@Time(9;0;0))); 
    @PostedCommand([EditGotoField];"Body"); 
    @PostedCommand([EditInsertText];@UpperCase("Set Start and End Dates to: " + @Text(@Adjust(BidDay;0;0;-1;0;0;0))));