创建预约莲花编程笔记(Creating an appointment for lotus notes

2019-09-21 18:19发布

我需要创建一个约会(日历项),并自动分发到一定的受邀者。

我有两个问题,现在:

1)该日历项不会出现在日历上的椅子。 我已经加入了椅子作为必需与会者它发送他们的通知,确认解决这个工作,但是我想知道如何将其自动添加。

2)受邀者正在发出了邀请,但他们无法确认。 莲花抛出一个错误,说他们不能处理的邀请,因为即使是在他们的邮件文件不存在。

我的代码是在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());
       }
   }
}

任何帮助表示赞赏。 谢谢。

Answer 1:

我认为这将有趣的,看看是否有可能将所有与会者iCalendar文件。 有在网上的几个例子,这里有一些: - 发出约会邀请到Lotus通过C#8.5笔记客户 - http://www.dominoguru.com/pages/icalendar_domino-outlook.html



Answer 2:

我终于实现了这一点。 它迫使用户设定的日期和手动发送邀请函,但其最接近的我能得到。 因为我需要每个人都FO重新安排的目的,相同的事件部分,我不能使用的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))));


文章来源: Creating an appointment for lotus notes programmatically