Создание встречи для лотосных нот программно
Мне нужно создать встречу (запись в календаре) и автоматически распределить ее по определенным приглашенным.
У меня есть две проблемы прямо сейчас:
1) Запись календаря не отображается в календаре для стула. Я работал над этим, добавляя председателя в качестве обязательного участника, который отправляет им уведомление для подтверждения, однако я хотел бы знать, как добавить его автоматически.
2) Приглашаемым отправляется приглашение, но они не могут его подтвердить. Lotus выдает ошибку, в которой говорится, что они не могут обработать приглашение, потому что даже их почтовый файл не существует.
Мой код в JAVA, но я могу портировать на Lotusscript или Formula, если это будет необходимо. Мне просто нужно, чтобы это заработало.
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());
}
}
}
Любая помощь приветствуется. Благодарю.
2 ответа
Я закончил тем, что делал это. Это заставляет пользователя устанавливать даты и отправлять приглашения вручную, но это самое близкое, что я мог получить. Я не мог использовать вложение 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))));
Думаю, было бы интересно узнать, можно ли отправить всем посетителям файл iCalendar. В сети есть несколько примеров, вот некоторые из них: - отправьте приглашение на прием клиентам lotus notes 8.5 через C#- http://www.dominoguru.com/pages/icalendar_domino-outlook.html