Lotus Notes 8.5:使用java创建会议

时间:2015-02-26 10:56:38

标签: java lotus-notes lotus-domino

我开始使用Lotus Notes 8.5,我必须使用Java,lotus.domino和Notes.jar在Lotus中创建会议。

所以,要做到这一点,我创建一个新文档并填充所有需要的字段(我认为)。这就是我创建会议的方式:

Document newDocument = db.createDocument();

    newDocument.appendItemValue("Body", "Create meeting from java.");
    newDocument.appendItemValue("Notes", "Test Notes");
    newDocument.appendItemValue("Chair", "Me");
    newDocument.appendItemValue("Principal", "Me");
    newDocument.appendItemValue("$altPrincipal", "Me");
    newDocument.appendItemValue("ExcludeFromView", "D,S");
    newDocument.appendItemValue("UpdateSeq", 1);
    newDocument.appendItemValue("$CSVersion", "2");
    newDocument.appendItemValue("$SMTPKeepNotesItems", "1");
    newDocument.appendItemValue("$CSWISL", "$S:1,$L:1,$B:1,$R:1,$E:1,$W:1,$O:1,$M:1,RequiredAttendees:1,INetRequiredNames:1,AltRequiredNames:1,StorageRequiredNames:1,OptionalAttendees:1,INetOptionalNames:1,AltOptionalNames:1,StorageOptionalNames:1,ApptUNIDURL:1,STUnyteConferenceURL:1,STUnyteConferenceID:1,SametimeType:1,WhiteBoardContent:1,STRoomName:1");
    newDocument.appendItemValue("WebDateTimeInit", "1");
    newDocument.appendItemValue("OrgTable", "C0");
    newDocument.appendItemValue("$AlarmDisabled", "1");
    newDocument.appendItemValue("$HFFlags", "1");                     
    newDocument.appendItemValue("Form", "Appointment");
    newDocument.appendItemValue("$FromPreferredLanguage", "fr");
    newDocument.appendItemValue("ApptUNID", "267DEFCD6ADE4EF8C1257DF600464A1B642");
    newDocument.appendItemValue("$LangChair", "");
    newDocument.appendItemValue("AppointmentType", "3");
    newDocument.appendItemValue("$TableSwitcher", "Description");
    newDocument.appendItemValue("OnlineMeeting", "");
    newDocument.appendItemValue("From", "Me");
    newDocument.appendItemValue("AltChair", "Me");
    newDocument.appendItemValue("OnlinePlace", "");
    newDocument.appendItemValue("IsBroadcast", "");
    newDocument.appendItemValue("$ExpandGroups", 3);
    newDocument.appendItemValue("IsTeamCalendar", "");
    newDocument.appendItemValue("Importance", "");
    newDocument.appendItemValue("OrgConfidential", "");
    newDocument.appendItemValue("Subject", "Meeting test from Java");
    newDocument.appendItemValue("PreventCounter", "");
    newDocument.appendItemValue("Location", "R1");
    newDocument.appendItemValue("RoomToReserve", "");
    newDocument.appendItemValue("Resources", "");
    newDocument.appendItemValue("$PaperColor", 1);
    newDocument.appendItemValue("STRecordMeeting", "");
    newDocument.appendItemValue("WhiteBoardContent", "");
    newDocument.appendItemValue("Categories", "");
    newDocument.appendItemValue("$BorderColor", "7F96A3");
    newDocument.appendItemValue("$WatchedItems", "$S,$L,$B,$R,$E,$W,$O,$M,RequiredAttendees,INetRequiredNames,AltRequiredNames,StorageRequiredNames,OptionalAttendees,INetOptionalNames,AltOptionalNames,StorageOptionalNames,ApptUNIDURL,STUnyteConferenceURL,STUnyteConferenceID,SametimeType,WhiteBoardContent,STRoomName");
    newDocument.appendItemValue("CalForwardChairNotificationTo", "");
    newDocument.appendItemValue("ReturnReceipt", "");
    newDocument.appendItemValue("PreventDelegate", "");
    newDocument.appendItemValue("EnterSendTo", "");
    newDocument.appendItemValue("EnterCopyTo", "");
    newDocument.appendItemValue("EnterBlindCopyTo", "");
    newDocument.appendItemValue("ConferenceCallInfo", "");
    newDocument.appendItemValue("SchedulerSwitcher", "1");
    newDocument.appendItemValue("$Abstract", "");
    newDocument.appendItemValue("StartTimeZone", "Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZN=Western/Central Europe");
    newDocument.appendItemValue("EndTimeZone", "Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZN=Western/Central Europe");
    newDocument.appendItemValue("NewStartTimeZone", "");
    newDocument.appendItemValue("NewEndTimeZone", "");
    newDocument.appendItemValue("Encrypt", "Représentation invalide. (undefined)");
    newDocument.appendItemValue("Sign", "");
    newDocument.appendItemValue("MeetingType", "");
    newDocument.appendItemValue("$PublicAccess", "1");
    newDocument.appendItemValue("StartDate", "27/02/2015");
    newDocument.appendItemValue("StartTime", "11:00:00");
    newDocument.appendItemValue("STARTDATETIME", s.createDateTime(new GregorianCalendar(2015, 02, 27, 11, 0, 0)));
    newDocument.appendItemValue("EndDate", "27/02/2015");
    newDocument.appendItemValue("EndTime", "13:00:00");
    newDocument.appendItemValue("EndDateTime", s.createDateTime(new GregorianCalendar(2015, 02, 27, 13, 0, 0)));
    newDocument.appendItemValue("CalendarDateTime", s.createDateTime(new GregorianCalendar(2015, 02, 27, 11, 0, 0)));
    newDocument.appendItemValue("_ViewIcon", 158);
    newDocument.appendItemValue("$ShowComments", "Normal");
    newDocument.appendItemValue("$ShowDescription", "Show");
    newDocument.appendItemValue("$BusyName", "Me");
    newDocument.appendItemValue("$BusyPriority", "1");
    newDocument.appendItemValue("SequenceNum", 2);
    newDocument.appendItemValue("$CSTrack", "Imported from my contacts at 02/24/2015 14:00:17");
    newDocument.appendItemValue("$NoPurge", s.createDateTime(new GregorianCalendar(2015, 02, 27, 13, 0, 0)));
    newDocument.appendItemValue("$UpdatedBy", "Me");
    newDocument.appendItemValue("$Revisions", s.createDateTime(new GregorianCalendar(2015, 02, 24, 13, 48, 31)));
    newDocument.appendItemValue("tmpUseLongDate", s.createDateTime(new GregorianCalendar(2015, 02, 27, 11, 0, 0)));         
    newDocument.appendItemValue("tmpEventLabel", "Meeting from Java (tmpEventLabel)");  
    newDocument.appendItemValue("dispRepeatText", "Meeting from Java (dispRepeatText)");
    newDocument.appendItemValue("tmpHideTimeZone", "");
    newDocument.appendItemValue("tmpStartDate1", "27/02/2015");

    newDocument.save();

当我回到Lotus时,会议已创建并显示在日历中。 问题是,无论我添加或删除任何字段,当我点击此会议时,Lotus会给我一个错误,说(法语大致翻译):

  

字段:'tmpStartDate1':运算符或@函数

所需的临时数据

所以我在java中添加这个新字段,启动程序,创建会议,然后......

  

字段:'tmpHideTimeZone':运算符或@函数

所需的临时数据

现在,这是莲花问我这个消息的第5个字段......

所有'tmp ******'字段都丢失了,但我不知道。我认为这些字段可以由Lotus生成,因为'tmp',但是如何?

我与使用Lotus Notes创建的其他会议进行比较,并且没有这样的'tmp'字段。

有什么想法吗?

编辑:

我试过了:

newDocument.computeWithForm(true, true);

如果您的文档格式不正确,则会抛出NotesException。 当我执行我的代码(再次大致翻译......)时:

  

NotesException:字段中的数据类型不正确。

我在另一个程序中尝试了computeWithForm,我创建并向Lotus添加了一个联系人,我没有收到任何错误。

确实,会议领域存在问题......

编辑:

有什么新想法吗?我对如何开发这个软件感到有点困惑....

1 个答案:

答案 0 :(得分:0)

项目也有类型!日期也不是一个字符串,日期是一个复杂的动物,一见钟情看起来无害,但可以咬得很厉害。

Document.appendItemValue方法强制该项为Text类型。 对于日期/时间(非临时;-)项目,您应该使用Document.ReplaceItemValueCustomData并传递类DateTime的参数。