【发布时间】:2014-07-10 22:02:37
【问题描述】:
我收到以下错误消息;
ID 格式错误。
CD0000008B9511D182D800C04FB1625DBA75FAB1A56555459257CE195FAEBE39
ID 来自我在日历中创建提醒时保存 ID 的表。
CF9 和 Exchange 2013:
<cfobject type="Java" class="microsoft.exchange.webservices.data.Appointment" name="appointment">
<cfobject type="Java" class="microsoft.exchange.webservices.data.AppointmentSchema" name="appointmentschema">
<cfset appointment.init( service )>
<cfobject type="Java" class="microsoft.exchange.webservices.data.PropertySet" name="propertyset">
<cfset propertyset.init()>
<cfobject type="Java" class="microsoft.exchange.webservices.data.ItemId" name="thisitemid">
<cfset thisitemid.init("#arguments.ExchangeID#")>
<cfset appointment = appointment.Bind(service, thisitemid) />
<cfscript>
appointment.setStart(#StartDate#);
appointment.setEnd(#EndDate#);
appointment.setSubject("#Arguments.EventName#");
appointment.setBody(MessageBody.getMessageBodyFromText("#Arguments.EventDescription#"));
appointment.Update(ConflictResolutionMode.AlwaysOverwrite);
</cfscript>
编辑: 以下代码是我今天用来创建约会的代码。但是,我还没有弄清楚如何返回约会的正确“ID”,以便在需要删除或更新约会时保存它。
<cfobject type="Java" class="microsoft.exchange.webservices.data.ExchangeService" name="service">
<cfset service.init()>
<cfobject type="Java" class="microsoft.exchange.webservices.data.ExchangeVersion" name="version">
<cfset service.init(version.Exchange2010)>
<cfobject type="Java" class="microsoft.exchange.webservices.data.WebCredentials" name="credentials">
<cfset credentials.init("#Arguments.EmailAddress#","#Arguments.Pword#")>
<cfset service.setCredentials(credentials) />
<cfobject type="Java" class="java.net.URI" name="uri">
<cfset uri.init("https://south.exch999.serverdata.net/EWS/Exchange.asmx?wsdl")>
<cfset service.setUrl(uri) />
<cfoutput>
<cfobject type="Java" class="microsoft.exchange.webservices.data.Appointment" name="appointment">
<cfset appointment.init( service )>
<cfobject type="Java" class="microsoft.exchange.webservices.data.MessageBody" name="MessageBody">
<cfscript>
appointment.setStart(#createDateTime(Year(Arguments.EventStartDateTime), Month(Arguments.EventStartDateTime),Day(Arguments.EventStartDateTime), evaluate(Hour(Arguments.EventStartDateTime)), Minute(Arguments.EventStartDateTime), 0)#);
appointment.setEnd(#createDateTime(Year(Arguments.EventEndDateTime), Month(Arguments.EventEndDateTime),Day(Arguments.EventEndDateTime), evaluate(Hour(Arguments.EventEndDateTime)), Minute(Arguments.EventEndDateTime), 0)#);
appointment.setSubject("#Arguments.EventName#"); appointment.setBody(MessageBody.getMessageBodyFromText("#Arguments.EventDescription#"));
appointment.Save();
TheEventID = appointment.Id.UniqueId;
</cfscript>
我应该检索什么属性来保存可用于稍后检索约会的 ID?
【问题讨论】:
-
我不明白 propertydefinition 在我在上面编辑的代码中设置的方案中是如何发挥作用的。
-
我将 id 保存为 TheEventID =ointment.Id.UniqueId;但是当我尝试绑定约会以更新它时,我收到消息:在商店中找不到指定的对象。
-
这种情况是在保存 ID 后直接发生还是仅在更旧的条目中发生?当它进入数据库时,您是否将其转换为十六进制,并在从中创建新的 ItemId 时将其转换回 Base64?您发布的示例是实际的 UniqueId 字符串吗?如果是这样,那就太短了。
-
我刚刚创建了活动并检查了我的数据库。它是一个完全不同的字符串(更长),而不是十六进制。我尝试修改事件并得到错误“未找到”。
-
AAMkADQyMGJhNjE0LTQzZjktNDRiMy05M2M4LWE0NTQxYzA5NWFhMABGAAAAAAD9wuji3kHlSpmR1oSZiZu0BwAnkNsBQ//TS7en1/EP1+R1AAAAAAEOAAAnkNsBQ//TS7en1/EP1+R1AAAuXUsjpan>